Construction d'une instruction SQL (ODBC)
Les applications ODBC effectuent la quasi-totalité de leur accès à la base de données en exécutant des instructions Transact-SQL. La forme de ces instructions dépend des spécifications d'application. Les instructions SQL peuvent être construites des manières suivantes :
Codées de manière irréversible
Instructions statiques exécutées par une application en tant que tâche fixe.
Construction au moment de l'exécution
Les instructions SQL construites au moment de l'exécution permettent à l'utilisateur de personnaliser l'instruction en utilisant des clauses courantes telles que SELECT, WHERE et ORDER BY. Cela inclut les requêtes ad hoc entrées par les utilisateurs.
Le pilote ODBC SQL Server client analyse les instructions SQL uniquement pour la syntaxe ODBC et ISO qui n’est pas directement prise en charge par le moteur de base de données, que le pilote transforme en Transact-SQL. Toutes les autres syntaxes SQL sont passées au moteur de base de données inchangé, où SQL Server détermine si elle est valide SQL Server. Cette approche fournit deux avantages :
Réduction des coûts
Les coûts de traitement pour le pilote sont réduits car il doit analyser seulement un petit ensemble de clauses ODBC et ISO.
Flexibilité
Les programmeurs peuvent personnaliser la portabilité de leurs applications. Pour améliorer la portabilité contre plusieurs bases de données, utilisez principalement la syntaxe ODBC et ISO. Pour utiliser des améliorations spécifiques à SQL Server, utilisez la syntaxe Transact-SQL appropriée. Le pilote ODBC SQL Server Native Client prend en charge la syntaxe Transact-SQL complète afin que les applications ODBC puissent tirer parti de toutes les fonctionnalités de SQL Server.
La liste de colonnes dans une instruction SELECT doit contenir uniquement les colonnes requises pour effectuer la tâche actuelle. Cela réduit non seulement la quantité de données envoyées sur le réseau, mais réduit également l'impact des modifications de base de données sur l'application. Si une application ne fait pas référence à une colonne d'une table, elle n'est pas affectée par les modifications apportées à cette colonne.