ODBC アプリケーションは、Transact-SQL ステートメントを実行することで、ほぼすべてのデータベース アクセスを実行します。 これらのステートメントの形式は、アプリケーションの要件によって異なります。 SQL ステートメントは、次の方法で構築できます。
ハードコーディング
固定タスクとしてアプリケーションによって実行される静的ステートメント。
実行時に構築される
ユーザーが SELECT、WHERE、ORDER BY などの共通句を使用してステートメントを調整できるようにする、実行時に構築された SQL ステートメント。 これには、ユーザーが入力したアドホック クエリが含まれます。
SQL Server クライアント ODBC ドライバーは、データベース エンジンで直接サポートされていない ODBC および ISO 構文に対してのみ SQL ステートメントを解析します。この構文は、ドライバーが Transact-SQL に変換します。 他のすべての SQL 構文は変更されずにデータベース エンジンに渡されます。ここで、SQL Server は有効な SQL Server かどうかを判断します。 この方法では、次の 2 つの利点が得られます。
オーバーヘッドの削減
ドライバーの処理オーバーヘッドは最小限に抑えられます。ODBC 句と ISO 句の小さなセットのみをスキャンする必要があるためです。
柔軟性
プログラマは、アプリケーションの移植性を調整できます。 複数のデータベースに対する移植性を強化するには、主に ODBC 構文と ISO 構文を使用します。 SQL Server に固有の拡張機能を使用するには、適切な Transact-SQL 構文を使用します。 SQL Server Native Client ODBC ドライバーは完全な Transact-SQL 構文をサポートしているため、ODBC ベースのアプリケーションは SQL Server のすべての機能を利用できます。
SELECT ステートメントの列リストには、現在のタスクを実行するために必要な列のみが含まれている必要があります。 これにより、ネットワーク経由で送信されるデータの量が減るだけでなく、アプリケーションに対するデータベースの変更の影響も軽減されます。 アプリケーションがテーブルから列を参照しない場合、アプリケーションはその列に加えられた変更の影響を受けません。