次の方法で共有


接続ハンドルの割り当て

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

接続の特性は、接続属性を設定することによって制御されます。 たとえば、トランザクションは接続レベルで発生するため、トランザクション分離レベルは接続属性です。 同様に、ログインタイムアウト、またはタイムアウト前に接続を試みている間に待機する秒数は、接続属性です。

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

SQL Server バージョン 7.0 以降に対して実行されているアプリケーションでは、表形式データ ストリーム (TDS) のネットワーク パケット サイズをリセットすることで、パフォーマンスが向上することがあります。 既定のパケット サイズは、サーバーで 4 KB に設定されます。 通常、パケット サイズが 4 KB から 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)