Skip to content

Commit f4e3641

Browse files
committed
[mssql] Add workaround for incorrect geometry system type returned by sp_describe_first_result_set
Some (versions?) (setups?) of SQL server incorrectly report that the system type for a geometry columns is "image" in their sp_describe_first_result_set results. Let's just automatically override this and set it back to "geometry" if we know that the column is actually the geometry column. Fixes broken query layers on these databases
1 parent 36f242a commit f4e3641

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/providers/mssql/qgsmssqldatabase.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,14 @@ bool QgsMssqlDatabase::loadQueryFields( FieldDetails &details, const QString &qu
403403
{
404404
details.geometryColumnName = name;
405405
details.geometryColumnType = systemTypeName;
406+
407+
// some versions/setups of SQL Server incorrectly report geometry columns as 'image' types in sp_describe_first_result_set results!
408+
// let's just fix that up here...
409+
if ( details.geometryColumnType == QLatin1String( "image" ) )
410+
{
411+
details.geometryColumnType = QStringLiteral( "geometry" );
412+
}
413+
406414
details.isGeography = systemTypeName == QLatin1String( "geography" );
407415
}
408416
else

0 commit comments

Comments
 (0)