英語で読む

次の方法で共有


接続ハンドルの割り当て

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

アプリケーションからデータ ソースまたはドライバーに接続する前に、接続ハンドルを割り当てる必要があります。 これを行うには、初期化された環境ハンドルを指す SQLAllocHandle HandleType パラメーターを SQL_HANDLE_DBC に設定し、 InputHandle を呼び出します。

接続の特性は、接続属性の設定により制御されます。 たとえば、トランザクションは接続レベルで行われるので、トランザクション分離レベルは 1 つの接続属性になります。 同様に、ログイン タイムアウト、つまり接続試行がタイムアウトするまで待機する秒数も接続属性です。

接続属性は SQLSetConnectAttr で設定され、現在の設定は SQLGetConnectAttr で取得されます。 接続が試行される前に SQLSetConnectAttr が呼び出されると、ODBC ドライバー マネージャーは属性を接続構造に格納し、接続プロセスの一部としてドライバーに設定します。 接続属性の中には、アプリケーションが接続を試行する前に設定しなければならないものも、接続の確立後に設定できるものもあります。 たとえば、SQL_ATTR_ODBC_CURSORS は接続前に設定する必要がありますが、SQL_ATTR_AUTOCOMMIT は接続後に設定できます。

SQL Server バージョン 7.0 以降に対して実行されているアプリケーションでは、表形式データ ストリーム (TDS) のネットワーク パケット サイズをリセットすることで、パフォーマンスが向上することがあります。 サーバーに設定されている既定のパケット サイズは 4 KB です。 パフォーマンスが最も高くなるのは、通常、パケット サイズが 4 ~ 8 KB のときです。 テストにより、他のパケット サイズの方がパフォーマンスが高くなることがわかった場合、アプリケーションではパケット サイズを再設定できます。 ODBC アプリケーションは、SQL_ATTR_PACKET_SIZE オプションを使用して SQLSetConnectAttr を呼び出して接続する前にこれを行うことができます。 パケット サイズを大きくすることでパフォーマンスが向上するアプリケーションもありますが、通常、8 KB を超えるパケット サイズを指定して向上するパフォーマンスはごくわずかです。

SQL Server Native Client ODBC ドライバーには、アプリケーションが機能を強化するために使用できる拡張接続属性が多数用意されています。 これらの属性の一部は、データ ソースで指定可能なオプションと同じものをコントロールし、データ ソースで設定されたオプションをどれでもオーバーライドするために使用されます。 たとえば、アプリケーションで引用符で囲まれた識別子を使用する場合は、ドライバー固有の属性である SQL_COPT_SS_QUOTED_IDENT を SQL_QI_ON に設定すると、データ ソースの設定とは関係なく、識別子を引用符で囲むというオプションが常に有効になります。

参照

SQL Server との通信 (ODBC)