ウィザードの 3 番目の画面では、既定のデータベース、SQLPrepare をサポートするために、ドライバーでストアド プロシージャを使用する方法、ドライバーで使用するさまざまな ANSI オプション、さらにフェールオーバー サーバーを使用するかどうかを指定します。

[既定のデータベースを以下のものに変更する] ボックス

[既定のデータベースを以下のものに変更する] ボックスでは、このデータ ソースを使用して確立されたすべての接続の既定のデータベースの名前を指定します。オフの場合、サーバーのログイン ID に対して定義されている既定のデータベースを接続に使用します。オンの場合、このボックスで指定されたデータベースが、ログイン ID に対して定義されている既定のデータベースよりも優先されます。[データベース ファイル名を添付] ボックスにプライマリ ファイルの名前が指定されている場合、プライマリ ファイルで示されるデータベースは、[既定のデータベースを以下のものに変更する] ボックスに指定されているデータベース名を使用したデータベースとして添付されます。

ログイン ID の既定のデータベースを使用する方が、ODBC データ ソースに既定のデータベースを指定するよりも効率的です。

[データベース ファイル名を添付] ボックス

[データベース ファイル名を添付] ボックスでは、アタッチ可能なデータベースのプライマリ ファイルの名前を指定します。このデータベースがアタッチされ、データ ソースの既定のデータベースとして使用されます。プライマリ ファイルの完全なパスとファイル名を指定します。[既定のデータベースを以下のものに変更する] ボックスに指定されたデータベース名は、アタッチされたデータベースの名前として使用されます。

[以下の場合には、準備された SQL ステートメント用の一時ストアド プロシージャを作成し、ドロップする] チェック ボックス

[以下の場合には、準備された SQL ステートメント用の一時ストアド プロシージャを作成し、ドロップする] チェック ボックスがオフの場合、Microsoft SQL Server ドライバーは、SQLPrepare ODBC 関数をサポートするためのストアド プロシージャを作成しません。オンの場合、SQL Server ドライバーは、SQLPrepare ODBC 関数をサポートするための一時ストアド プロシージャを作成します。

[切断時のみ] オプション ボタン

[切断時のみ] オプション ボタンでは、SQLDisconnect ODBC 関数が呼び出されたとき、SQLPrepare 用に作成された一時ストアド プロシージャを削除するように指定します。これにより、ドライバーは、同じ SQL ステートメントが複数回準備された場合にストアド プロシージャを再利用して、アプリケーションの実行中にストアド プロシージャを削除する処理のオーバーヘッドを減らすことができます。切断されることなく長時間実行されるアプリケーションまたは SQLPrepare 呼び出しを大量に発行するアプリケーションに対してこのオプションを選択した場合、一時ストアド プロシージャが増加する可能性があります。

[接続解除した場合、または、接続している間でも適切な場合] オプション ボタン

[接続解除した場合、または、接続している間でも適切な場合] オプション ボタンでは、SQLDisconnect が呼び出されたとき、ステートメント ハンドルに対して SQLFreeHandle が呼び出されたとき、同じステートメント ハンドルで新しい SQL ステートメントを処理するために SQLPrepare または SQLExecDirect が呼び出されたとき、またはカタログ関数が呼び出されたときに、SQLPrepare 用に作成された一時ストアド プロシージャを削除するように指定します。アプリケーションの実行中に一時ストアド プロシージャが削除されることから多少のオーバーヘッドが発生しますが、長時間実行されるアプリケーションで一時ストアド プロシージャが増加するのを防止できます。

[ANSI の引用符付き識別子を使用する] チェック ボックス

[ANSI の引用符付き識別子を使用する] チェック ボックスでは、SQL Server ODBC ドライバーが接続するときに QUOTED_IDENTIFIERS を設定するように指定します。オンの場合、SQL Server では、引用符に関する ANSI 規則が適用されます。二重引用符は、列名やテーブル名など、識別子のみに使用できます。文字列は単一引用符で囲む必要があります。

コードのコピー
SELECT "au_id"
FROM "authors"
WHERE "au_lname" = 'O''Brien'

オフの場合、Microsoft Excel に付属の Microsoft Query ユーティリティなど、引用符で囲まれた識別子を使用するアプリケーションでは、引用符で囲まれた識別子を使用した SQL ステートメントを生成するとエラーが発生します。

[ANSI の NULL、埋め込み文字、警告を使用する] チェック ボックス

[ANSI の NULL、埋め込み文字、警告を使用する] チェック ボックスでは、SQL Server ドライバーで接続する際に ANSI_NULLS、ANSI_WARNINGS、および ANSI_PADDINGS の各オプションがオンに設定されるように指定します。

ANSI_NULLS がオンに設定されている場合、サーバーでは、NULL に対する列の比較に関する ANSI 規則が適用されます。ANSI 構文 "IS NULL" または "IS NOT NULL" は、すべての NULL 比較に使用する必要があります。Transact-SQL 構文 "= NULL" はサポートされていません。

ANSI_WARNINGS がオンに設定されている場合、SQL Server では、ANSI 規則に違反していても Transact-SQL の規則には違反していない状況で警告メッセージが表示されます。このようなエラーの例として、INSERT ステートメントまたは UPDATE ステートメント実行時のデータの切り捨て、および集計関数での NULL 値の検出があります。

ANSI_PADDING がオンに設定されている場合、varchar 値の末尾の空白と varbinary 値の末尾のゼロについて、自動的な切り捨ては行われません。

[プライマリ SQL Server が使用不可の場合はフェイルオーバー SQL Server を使用する] チェック ボックス

[プライマリ SQL Server が使用不可の場合はフェイルオーバー SQL Server を使用する] チェック ボックスでは、データ ソースに指定された SQL Server に対してフェールオーバー サーバーが定義されている場合に、SQL Server ドライバーが指定されたプライマリ サーバーに接続するときにフェールオーバー サーバーの接続情報を収集するように指定します。アプリケーションがプライマリ SQL Server との接続を失った場合、アプリケーションは現在のトランザクションをクリーンアップし、プライマリ SQL Server への再接続を試みます。プライマリ サーバーが使用不可能であることを検出した場合、ドライバーは自動的にフェールオーバー サーバーに接続します。サーバーがフェールオーバー操作をサポートしていない場合、このオプションは無効になります。