Ce pilote implémente la gestion de l’accès aux tables spatiales dans Microsoft SQL Server 2008+ qui contiennent les types de données géométriques et géographiques pour représenter les colonnes géométrie.
Pour se connecter à un source de données MSSQL, utilisez une chaîne de connexion définissant le nom de la base de données avec des paramètres supplémentaires si nécessaire. La chaîne de connexion doit être préfixé par ‘MSSQL:‘.
MSSQL:server=.\MSSQLSERVER2008;database=dbname;trusted_connection=yes
En plus des paramètres standards du format de la chaîne de connexion les paramètres personnalisés suivants peuvent également être utilisés avec la syntaxe suivante :
en utilisant ce paramètre vous pouvez définir le sous jeu de données des couches à utiliser par le pilote. Si ce paramètre n’est pas définie, les couches sont récupérées à partir de la table de métadonnées geometry_column. vous pouvez omettre de spécifier la partie sur le schéma et la colonne géométrique de la syntaxe.
Le format désiré dans lequel les géométries doivent être récupérées à partir du serveur. La valeur par défaut est ‘native‘ dans ce cas le format de sérialisation natif SqlGeometry et SqlGeography est utilisé. Lors de l’utilisation de ‘wkb‘ ou ‘wkt‘ la représentation de la géométrie est convertie en ‘Well Known Binary‘ et ‘Well Known Text‘ dans le serveur. Cette conversion nécessite une surcharge significative côté serveur et rend l’accès aux features plus lente qu’en utilisant le format natif.
Les noms des paramètres ne sont pas sensible à la casse dans la chaîne de connexion. La définition du paramètre Database est nécessaire pour le pilote afin de sélectionner la base de données correctement.
Le pilote MS SQL Spatial envoie les requêtes SQL directement à MS SQL par défaut, plutôt que de les évaluer en interne en utilisant l’appel à ExecuteSQL() du OGRDataSource, ou l’option de la commande -sql d’ogr2ogr. Les expressions des requêtes attributaires sont aussi envoyé directement à MSSQL. Il est aussi possible de demander au pilote MSSQL d’OGR de prendre en charge les commandes SQL avec le moteur SQL dans OGR, en passant la chaîne “OGRSQL” à la méthode ExecuteSQL(), comme le nom du dialect SQL.
Le pilote MSSQL dans OGR gère les appels OGRLayer::StartTrasaction(), OGRLayer::CommitTransaction() et OGRLayer::RollbackTransaction() dans le sens normal de SQL.
Ce pilote ne gère pas la création d’une nouvelle base de données, vous devrez utiliser l’Outils client du Serveur Microsoft SQL pour cela, mais il permet la création de nouvelles couches dans une base existante.
Par défaut le pilote MS SQL Spatial ne créé par d’index spatiaux pour la table pendant la création de la couche. Cependant vous devez créer un index spatial en utilisant l’option sql suivante :
create spatial index on schema.table
L’index spatial peut aussi être supprimé en utilisant la syntaxe suivante :
drop spatial index on schema.table
Créer une couche à partir d’un source de données OGR :
ogr2ogr -overwrite -f MSSQLSpatial "MSSQL:server=.\MSSQLSERVER2008;database=geodb;trusted_connection=yes" "rivers.tab"
Se connecter à une couche et dumper son contenu :
ogrinfo -al "MSSQL:server=.\MSSQLSERVER2008;database=geodb;tables=rivers;trusted_connection=yes"
Créer un index spatial :
ogrinfo -sql "create spatial index on rivers" "MSSQL:server=.\MSSQLSERVER2008;database=geodb;trusted_connection=yes"