Skip to content

Commit a39d0b7

Browse files
committed
MSSQL: Support non spatial tables in browser dock (fixes #5334)
1 parent e51dd2c commit a39d0b7

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/providers/mssql/qgsmssqldataitems.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@ QVector<QgsDataItem*> QgsMssqlConnectionItem::createChildren()
136136
query += "sys.schemas.name, sys.objects.name, sys.columns.name, null, 'GEOMETRY' from sys.columns join sys.types on sys.columns.system_type_id = sys.types.system_type_id and sys.columns.user_type_id = sys.types.user_type_id join sys.objects on sys.objects.object_id = sys.columns.object_id join sys.schemas on sys.objects.schema_id = sys.schemas.schema_id where sys.types.name = 'geometry' or sys.types.name = 'geography' and sys.objects.type = 'U'";
137137
}
138138

139+
if ( mAllowGeometrylessTables )
140+
{
141+
query += " union all select sys.schemas.name, sys.objects.name, null, null, 'NONE' from sys.objects join sys.schemas on sys.objects.schema_id = sys.schemas.schema_id where not exists (select * from sys.columns sc1 join sys.types on sc1.system_type_id = sys.types.system_type_id where (sys.types.name = 'geometry' or sys.types.name = 'geography') and sys.objects.object_id = sc1.object_id) and sys.objects.type = 'U'";
142+
}
143+
139144
// issue the sql query
140145
QSqlQuery q = QSqlQuery( db );
141146
q.setForwardOnly( true );
@@ -488,7 +493,7 @@ QgsMssqlLayerItem* QgsMssqlSchemaItem::addLayer( QgsMssqlLayerProperty layerProp
488493
layerType = QgsLayerItem::Polygon;
489494
break;
490495
default:
491-
if ( layerProperty.type.isEmpty() && layerProperty.geometryColName.isEmpty() )
496+
if ( layerProperty.type == "NONE" && layerProperty.geometryColName.isEmpty() )
492497
{
493498
layerType = QgsLayerItem::TableLayer;
494499
tip = tr( "as geometryless table" );

0 commit comments

Comments
 (0)