SQL Server Native Client での接続文字列キーワードの使用

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

重要

SQL Server Native Client (SNAC と略されることがよくあります) は、SQL Server 2022 (16.x) と SQL Server Management Studio 19 (SSMS) から削除されました。 SQL Server Native Client (SQLNCLI または SQLNCLI11) とレガシ Microsoft OLE DB Provider for SQL Server (SQLOLEDB) は、新しいアプリケーション開発には推奨されません。 今後、新しい Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server または最新の Microsoft ODBC Driver for SQL Server に切り替えてください。 SQL Server データベース エンジン (バージョン 2012 から 2019) のコンポーネントとして付属する SQLNCLI については、このサポート ライフサイクルの例外を参照してください。

一部のSQL Server Native Client API では、接続文字列を使用して接続属性を指定します。 接続文字列はキーワードとそれに関連する値のリストです。各キーワードによって特定の接続属性を識別します。

詳細については、「OLE DB Driver for SQL Serverでの接続文字列キーワードの使用」を参照してください。

注意

SQL Server Native Clientにより、接続文字列のあいまいさが下位互換性を維持できます (たとえば、一部のキーワードは複数回指定でき、競合するキーワードは位置または優先順位に基づいて解決できます)。 SQL Server Native Clientを使用するようにアプリケーションを変更して、接続文字列のあいまいさに対する依存関係を排除することをお勧めします。

次のセクションでは、SQL Server Native Clientをデータ プロバイダーとして使用する場合に、SQL Server Native Client OLE DB プロバイダー、SQL Server Native Client ODBC ドライバー、および ActiveX Data Objects (ADO) で使用できるキーワードについて説明します。

ODBC ドライバー接続文字列キーワード

ODBC アプリケーションでは、 SQLDriverConnect 関数と SQLBrowseConnect 関数のパラメーターとして接続文字列が使用されます。

ODBC で使用される接続文字列の構文を次に示します。

connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string

empty-string ::=

attribute ::= attribute-keyword=[{]attribute-value[}]

attribute-value ::= character-string

attribute-keyword ::= identifier

属性値は必要に応じて中かっこで囲むことができます。常に中かっこを使用すると、 属性値に英数字以外の文字が含まれる場合の問題を回避できます。 最初の右中かっこが値の終わりと見なされるため、値に右中かっこを含めることはできません。

次の表に、ODBC 接続文字列と共に使用できるキーワードを示します。

Keyword 説明
Addr "Address" のシノニム。
アドレス SQL Server のインスタンスを実行しているサーバーのネットワーク アドレス。 Address は、通常、サーバーのネットワーク名ですが、パイプ、IP アドレス、または TCP/IP ポートとソケット アドレスなど、他の名前を指定してもかまいません。

IP アドレスを指定する場合は、SQL Server 構成マネージャーで TCP/IP または名前付きパイプ プロトコルが有効になっていることを確認します。

Address の値は、SQL Server Native Clientを使用する場合、ODBC 接続文字列で Server に渡される値よりも優先されます。 Address=; の場合は、Server キーワードで指定されているサーバーに接続されますが、Address= ;, Address=.;Address=localhost;、および Address=(local); の場合はすべて、ローカル サーバーに接続されることにも注意してください。

Address キーワードの完全な構文は次のとおりです。

[protocol:]Address[,port |\pipe\pipename]

protocol には、 tcp (TCP/IP)、 lpc (共有メモリ)、または np (名前付きパイプ) を指定できます。 プロトコルの詳細については、「クライアント プロトコルの構成」を参照してください。

プロトコルネットワーク キーワード (keyword)も指定されていない場合、SQL Server Native Clientは SQL Server 構成マネージャー で指定されたプロトコル順序を使用します。

port は、指定したサーバー上の接続先のポートです。 既定では、SQL Server はポート 1433 を使用します。
AnsiNPW "yes" の場合、ANSI で定められた動作に従って NULL の比較、文字データの埋め込み、警告、および NULL 連結が処理されます。 "no" の場合、ANSI で定められた動作が公開されません。 ANSI NPW の動作の詳細については、「 ISO オプションの効果」を参照してください。
APP SQLDriverConnect を呼び出すアプリケーションの名前 (省略可能)。 指定した場合、この値は master.dbo.sysprocessesprogram_name に格納され、 sp_who 関数と APP_NAME 関数によって返されます。
ApplicationIntent アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 有効値は、ReadOnlyReadWrite です。 既定値は ReadWrite です。 次に例を示します。

ApplicationIntent=ReadOnly

Always On可用性グループに対するSQL Server Native Clientのサポートの詳細については、「高可用性、ディザスター リカバリー SQL Server Native Clientサポート」を参照してください。
AttachDBFileName アタッチできるデータベースのプライマリ ファイルの名前。 この名前には完全なパス名を指定します。また C 文字列変数を使用する場合は、\ 文字をエスケープしてください。

AttachDBFileName=c:\\MyFolder\\MyDB.mdf

このデータベースがアタッチされ、接続の既定のデータベースとして使用されます。 AttachDBFileName を使用するには、SQLDriverConnect DATABASE パラメーターまたはSQL_COPT_CURRENT_CATALOG接続属性でデータベース名も指定する必要があります。 データベースが以前にアタッチされていた場合、SQL Serverは再アタッチしません。接続されたデータベースが接続の既定値として使用されます。
AutoTranslate "yes" の場合、クライアントとサーバーの間で送受信される ANSI 文字列は、いったん Unicode に変換されます。これは、クライアントとサーバーのコード ページ間で拡張文字を照合するときに発生する問題を最小限に抑えるためです。

クライアント SQL_C_CHAR、SQL Server charvarchar、またはテキスト変数、パラメーター、または列に送信されたデータは、クライアント ANSI コード ページ (ACP) を使用して文字から Unicode に変換され、サーバーの ACP を使用して Unicode から文字に変換されます。

クライアント SQL_C_CHAR変数に送信される charvarchar、またはテキスト データSQL Server、サーバー ACP を使用して文字から Unicode に変換された後、クライアント ACP を使用して Unicode から文字に変換されます。

これらの変換は、SQL Server Native Client ODBC ドライバーによってクライアントで実行されます。 また、サーバーで使用しているものと同じ ACP (ANSI コード ページ) がクライアントでも使用可能になっている必要があります。

次の設定は、送受信時の変換に影響しません。

* Unicode SQL_C_WCHARサーバー上の charvarchar、または テキスト に送信されるクライアント データ。

* クライアント上の Unicode SQL_C_WCHAR 変数に送信される char、 varchar、または テキスト サーバー のデータ。

* ANSI SQL_C_CHARサーバー上の Unicode ncharnvarchar、または ntext に送信されるクライアント データ。

* クライアント上の ANSI SQL_C_CHAR 変数に送信される Unicode ncharnvarchar、または ntext サーバー データ。

"no" の場合、文字の変換は行われません。

SQL Server Native Client ODBC ドライバーは、クライアント ANSI 文字SQL_C_CHARサーバー上の charvarchar、またはテキスト変数、パラメーター、または列に送信されるデータを変換しません。 サーバーからクライアント上の変数に送信された charvarchar、または テキスト データに対して変換SQL_C_CHAR実行されません。

クライアントとSQL Serverが異なる ACP を使用している場合、拡張文字が誤って解釈される可能性があります。
データベース 接続の既定のSQL Server データベースの名前。 Database が指定されていない場合は、ログインに定義されている既定のデータベースが使用されます。 ODBC データ ソースの既定のデータベースは、ログインに定義されている既定のデータベースをオーバーライドします。 AttachDBFileName も指定しない限り、データベースは既存のデータベースである必要があります。 AttachDBFileName も指定した場合、それが指すプライマリ ファイルがアタッチされ、Database で指定されたデータベース名が指定されます。
[ドライバー] SQLDrivers によって返されるドライバーの名前。 SQL Server Native Client ODBC ドライバーのキーワード (keyword)値は"{SQL Server Native Client 11.0}" です。 Driver が指定され、DriverCompletion SQL_DRIVER_NOPROMPT に設定されている場合は、サーバー キーワード (keyword)が必要です。

ドライバー名の詳細については、「SQL Server Native Client ヘッダー ファイルとライブラリ ファイルの使用」を参照してください。
DSN 既存の ODBC ユーザー データ ソースまたはシステム データ ソースの名前。 このキーワード (keyword)は、サーバーネットワーク、アドレスの各キーワードで指定できる値をオーバーライドします
Encrypt データをネットワークに送信する前に暗号化するかどうかを指定します。 使用できる値は、"yes"/"mandatory"(18.0+)、"no"/"optional"(18.0+)、"strict"(18.0+) です。 既定値は、バージョン 18.0 以降では "yes" で、以前のバージョンでは "いいえ" です。
フォールバック このキーワード (keyword)は非推奨となり、SQL Server Native Client ODBC ドライバーではその設定は無視されます。
Failover_Partner プライマリ サーバーに接続できない場合に使用するフェールオーバー パートナー サーバーの名前。
FailoverPartnerSPN フェールオーバー パートナーの SPN。 既定値は空の文字列です。 空の文字列を指定すると、SQL Server Native Clientはドライバーによって生成される既定の SPN を使用します。
FileDSN 既存の ODBC ファイル データ ソースの名前。
Language SQL Server言語名 (省略可能)。 SQL Serverでは、複数の言語のメッセージを sysmessages に格納できます。 複数の言語を使用してSQL Serverに接続する場合、Language は接続に使用するメッセージのセットを指定します。
MARS_Connection その接続で MARS (複数のアクティブな結果セット) を有効または無効にします。 認識できる値は "yes" と "no" です。 既定値は "いいえ" です。
MultiSubnetFailover SQL Server可用性グループまたはSQL Server フェールオーバー クラスター インスタンスの可用性グループ リスナーに接続する場合は、常に multiSubnetFailover=Yes を指定します。 multiSubnetFailover=Yes は、(現在) アクティブなサーバーの検出と接続を高速化するために、SQL Server Native Clientを構成します。 可能な値は、 [はい][いいえ] です。 既定値は No です。 次に例を示します。

MultiSubnetFailover=Yes

Always On可用性グループに対するSQL Server Native Clientのサポートの詳細については、「高可用性、ディザスター リカバリー SQL Server Native Clientサポート」を参照してください。
Net "Network" のシノニム。
Network 有効な値は 、dbnmpntw (名前付きパイプ) と dbmssocn (TCP/IP) です。

ネットワーク キーワード (keyword)の値とサーバー キーワード (keyword)のプロトコル プレフィックスの両方を指定するとエラーが発生します。
PWD UID パラメーターで指定されたSQL Serverログイン アカウントのパスワード。 ログインに NULL パスワードがある場合、または Windows 認証 (Trusted_Connection = yes) を使用している場合は、PWD を指定する必要はありません。
QueryLog_On "yes" の場合、その接続では、実行時間の長いクエリのデータに関するログを記録できます。 "no" の場合、実行時間の長いクエリのデータに関するログは記録されません。
QueryLogFile 実行時間の長いクエリのデータをログに記録する場合に使用するファイルの完全なパスとファイル名。
QueryLogTime 実行時間の長いクエリをログに記録するためのしきい値 (ミリ秒) を指定する数字文字列。 指定時間内に応答が返ってこないクエリは、実行時間の長いクエリ用のログ ファイルに記録されます。
QuotedId "はい" の場合、QUOTED_IDENTIFIERSは接続に対して ON に設定SQL Server、SQL ステートメントでの引用符の使用に関する ISO 規則を使用します。 "no" の場合、その接続の QUOTED_IDENTIFIERS が OFF に設定され、 SQL Server、SQL ステートメントでの引用符の使用に関する従来の Transact-SQL 規則に従います。 詳細については、「 ISO オプションの効果」を参照してください。
Regional "はい" の場合、SQL Server Native Client ODBC ドライバーは、通貨、日付、時刻のデータを文字データに変換するときにクライアント設定を使用します。 変換は一方向にのみ行われます。INSERT ステートメントや UPDATE ステートメントのパラメーターなどで日付文字列または通貨の値が ODBC 標準以外の形式で指定されている場合、ドライバーでは、これらの値は認識されません。 "no" の場合、文字データに変換される通貨、日付、および時刻データを表現するために ODBC 標準の文字列が使用されます。
SaveFile 接続が成功した場合に、現在の接続の属性を保存する ODBC データ ソース ファイルの名前。
サーバー SQL Server のインスタンスの名前。 ネットワーク上のサーバーの名前、IP アドレス、または SQL Server 構成マネージャーの別名を指定する必要があります。

Address キーワードは、Server キーワードをオーバーライドします。

次のいずれかを指定することで、ローカル サーバー上の既定のインスタンスに接続できます。

Server=;

Server=.;

Server=(local);

Server=(local);

Server=(localhost);

Server=(localdb)\instancename;

LocalDB のサポートの詳細については、「localDB のSQL Server Native Clientサポート」を参照してください。

名前付きインスタンスを指定するSQL Server、追加 \InstanceNameします。

サーバーを指定しなかった場合は、ローカル コンピューター上にある既定のインスタンスに接続されます。

IP アドレスを指定する場合は、SQL Server 構成マネージャーで TCP/IP または名前付きパイプ プロトコルが有効になっていることを確認します。

Server キーワードの完全な構文は次のとおりです。

Server= ["プロトコル" : ]"サーバー"[ , "ポート"]

protocol には、 tcp (TCP/IP)、 lpc (共有メモリ)、または np (名前付きパイプ) を指定できます。

名前付きパイプを指定する例を次に示します。

np:\\.\pipe\MSSQL$MYINST01\sql\query

この行では、名前付きパイプ プロトコル、ローカル コンピューター上の名前付きパイプ (\\.\pipe)、SQL Server インスタンスの名前 ()、および名前付きパイプの既定の名前 (MSSQL$MYINST01sql/query) を指定します。

プロトコルネットワーク キーワード (keyword)も指定されていない場合、SQL Server Native Clientは SQL Server 構成マネージャー で指定されたプロトコル順序を使用します。

port は、指定したサーバー上の接続先のポートです。 既定では、SQL Server はポート 1433 を使用します。

SQL Server Native Clientを使用する場合、ODBC 接続文字列で Server に渡される値の先頭ではスペースは無視されます。
ServerSPN サーバーの SPN。 既定値は空の文字列です。 空の文字列を指定すると、SQL Server Native Clientはドライバーによって生成される既定の SPN を使用します。
StatsLog_On "はい" の場合、ODBC ドライバーのパフォーマンス データSQL Server Native Clientキャプチャできます。 "いいえ" の場合、SQL SERVER NATIVE CLIENT ODBC ドライバーのパフォーマンス データは接続で使用できません。
StatsLogFile ODBC ドライバーのパフォーマンス統計を記録するために使用されるファイルSQL Server Native Client完全パスとファイル名。
Trusted_Connection "yes" の場合、ログイン検証に Windows 認証モードを使用するように odbc ドライバー SQL Server Native Clientに指示します。 それ以外の場合は、ログイン検証にSQL Serverユーザー名とパスワードを使用するようにSQL Server Native Client ODBC ドライバーに指示し、UID キーワードと PWD キーワードを指定する必要があります。
TrustServerCertificate Encrypt と共に使用すると、自己署名サーバー証明書を使用した暗号化が有効になります。
UID 有効なSQL Serverログイン アカウント。 Windows 認証を使用する場合は UID を指定する必要はありません。
UseProcForPrepare このキーワード (keyword)は非推奨となり、SQL Server Native Client ODBC ドライバーではその設定は無視されます。
WSID ワークステーション ID。 通常は、アプリケーションが実装されているコンピューターのネットワーク名です (省略可)。 指定した場合、この値は master.dbo.sysprocesses 列の ホスト名 に格納され、 sp_whoHOST_NAME 関数によって返されます。

Note

地域別の変換の設定は、通貨、数値、日付、および時刻のデータ型に適用されます。 変換の設定は、出力変換にのみ適用され、通貨、数値、日付、または時刻の値を文字列に変換する場合にのみ確認することができます。

SQL Server Native Client ODBC ドライバーは、現在のユーザーのロケール レジストリ設定を使用します。 SetThreadLocale の呼び出しなどによって接続後にアプリケーションによって設定された場合、ドライバーは現在のスレッドのロケールを受け入れません。

データ ソースの地域別の動作を変更すると、アプリケーション エラーが発生することがあります。 日付文字列を解析し、ODBC の定義に従った形式の日付文字列を受け付けるアプリケーションが、地域別の動作の値を変更することによって、悪影響を受ける可能性があります。

OLE DB プロバイダーの接続文字列キーワード

OLE DB アプリケーションでデータ ソース オブジェクトを初期化する方法は 2 つあります。

  • IDBInitialize::Initialize

  • IDataInitialize::GetDataSource

最初の方法では、DBPROPSET_DBINIT プロパティ セットのプロパティ DBPROP_INIT_PROVIDERSTRING を設定することにより、プロバイダー文字列で接続プロパティを初期化できます。 2 番目の方法では、IDataInitialize::GetDataSource メソッドに初期化文字列を渡して、接続プロパティを初期化できます。 いずれの方法でも同一の OLE DB 接続プロパティが初期化されますが、使用されるキーワードのセットは異なります。 IDataInitialize::GetDataSource で使用されるキーワードのセットには、少なくとも初期化プロパティ グループ内のプロパティの説明が含まれます。

対応する OLE DB プロパティを持つプロバイダー文字列の設定は一部の既定値に設定されるか、値に明示的に設定され、OLE DB プロパティ値はプロバイダー文字列の設定をオーバーライドします。

DBPROP_INIT_PROVIDERSTRING 値によってプロバイダー文字列内で設定されるブール型のプロパティは、値 "yes" と "no" を使用して設定します。 IDataInitialize::GetDataSource によって初期化文字列内で設定されるブール型のプロパティは、値 "true" と "false" を使用して設定します。

IDataInitialize::GetDataSource を使用するアプリケーションでは、IDBInitialize::Initialize によって使用されるキーワードを使用することもできますが、既定値を持たないプロパティに対してのみ使用できます。 IDataInitialize::GetDataSource キーワードと IDBInitialize::Initialize キーワードの両方を初期化文字列で使用すると、IDataInitialize::GetDataSource キーワードの設定が利用されます。 今後のリリースではこの動作が維持されない可能性があるので、IDataInitialize:GetDataSource 接続文字列では IDBInitialize::Initialize キーワードを使用しないことを強くお勧めします。

Note

IDataInitialize::GetDataSource を介して渡される接続文字列は、プロパティに変換され、IDBProperties::SetProperties で適用されます。 コンポーネント サービスによって IDBProperties::GetPropertyInfo でプロパティ説明が検出された場合、このプロパティはスタンドアロンのプロパティとして適用されます。 それ以外の場合は、DBPROP_PROVIDERSTRING プロパティを介して適用されます。 たとえば、接続文字列 Data Source=server1;Server=server2 を指定する場合、Data Source はプロパティとして設定されますが、Server はプロバイダー文字列になります。

同じプロバイダー固有のプロパティのインスタンスを複数指定した場合、最初のプロパティの最初の値が使用されます。

IDBInitialize::Initialize と共に DBPROP_INIT_PROVIDERSTRING を利用する OLE DB アプリケーションで使用される接続文字列の構文は次のとおりです。

connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string

empty-string ::=

attribute ::= attribute-keyword=[{]attribute-value[}]

attribute-value ::= character-string

attribute-keyword ::= identifier

属性値は必要に応じて中かっこで囲むことができます。常に中かっこを使用すると、 属性値に英数字以外の文字が含まれる場合の問題を回避できます。 最初の右中かっこが値の終わりと見なされるため、値に右中かっこを含めることはできません。

接続文字列キーワードの等号 (=) の後のスペース文字は、値を引用符で囲んだ場合でも、リテラルとして解釈されます。

次の表に、DBPROP_INIT_PROVIDERSTRING と共に使用できるキーワードを示します。

Keyword 初期化プロパティ 説明
Addr SSPROP_INIT_NETWORKADDRESS "Address" のシノニム。
アドレス SSPROP_INIT_NETWORKADDRESS 組織内の SQL Server インスタンスのネットワーク アドレス。

有効なアドレス構文の詳細については、このトピックで後述する「Address ODBC キーワード (keyword)」の説明を参照してください。
APP SSPROP_INIT_APPNAME アプリケーションを識別する文字列。
ApplicationIntent SSPROP_INIT_APPLICATIONINTENT アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 有効値は、ReadOnlyReadWrite です。

既定値は ReadWrite です。 Always On可用性グループに対するSQL Server Native Clientのサポートの詳細については、「高可用性、ディザスター リカバリーのSQL Server Native Clientサポート」を参照してください。
AttachDBFileName SSPROP_INIT_FILENAME アタッチできるデータベースのプライマリ ファイルの名前 (完全なパス名を含む)。 AttachDBFileName を使用するには、プロバイダー文字列の Database キーワードでデータベース名を指定する必要もあります。 データベースが以前にアタッチされていた場合、SQL Server により再アタッチされることはありません (アタッチされたデータベースがその接続の既定のデータベースとして使用されます)。
自動翻訳 SSPROP_INIT_AUTOTRANSLATE "AutoTranslate" のシノニム。
AutoTranslate SSPROP_INIT_AUTOTRANSLATE OEM/ANSI 文字の変換を構成します。 認識できる値は "yes" と "no" です。
[データベース] DBPROP_INIT_CATALOG データベース名です。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 使用するデータ型処理モードを指定します。 認識できる値は、プロバイダー データ型を示す "0" および SQL Server 2000 データ型を示す "80" です。
Encrypt SSPROP_INIT_ENCRYPT データをネットワークに送信する前に暗号化するかどうかを指定します。 有効値は、"yes" および "no" です。 既定値は "no" です。
FailoverPartner SSPROP_INIT_FAILOVERPARTNER データベース ミラーリングに使用するフェールオーバー サーバーの名前。
FailoverPartnerSPN SSPROP_INIT_FAILOVERPARTNERSPN フェールオーバー パートナーの SPN。 既定値は空の文字列です。 空の文字列を指定すると、SQL Server Native Clientは既定のプロバイダーによって生成された SPN を使用します。
言語 SSPROP_INIT_CURRENTLANGUAGE SQL Server 言語。
MarsConn SSPROP_INIT_MARSCONNECTION その接続で MARS (複数のアクティブな結果セット) を有効または無効にします (SQL Server 2005 (9.x) 以降のサーバーの場合)。 有効値は、"yes" および "no" です。 既定値は "no" です。
Net SSPROP_INIT_NETWORKLIBRARY "Network" のシノニム。
Network SSPROP_INIT_NETWORKLIBRARY 組織内の SQL Server インスタンスへの接続を確立するために使用するネットワーク ライブラリ。
Network Library SSPROP_INIT_NETWORKLIBRARY "Network" のシノニム。
PacketSize SSPROP_INIT_PACKETSIZE ネットワーク パケットのサイズ。 既定値は 4096 です。
PersistSensitive DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 文字列 "yes" と "no" を値として受け取ります。 "no" の場合、データ ソース オブジェクトには機密の認証情報を保存できません。
PWD DBPROP_AUTH_PASSWORD SQL Server のログイン パスワード。
[サーバー] DBPROP_INIT_DATASOURCE 組織内の SQL Server インスタンスの名前。

指定されなかった場合は、ローカル コンピューター上にある既定のインスタンスに接続します。

有効なアドレス構文の詳細については、このトピックの Server ODBC キーワード (keyword)の説明を参照してください。
ServerSPN SSPROP_INIT_SERVERSPN サーバーの SPN。 既定値は空の文字列です。 空の文字列を指定すると、SQL Server Native Clientはプロバイダーによって生成される既定の SPN を使用します。
タイムアウト DBPROP_INIT_TIMEOUT データ ソースの初期化が完了するのを待機する秒数。
Trusted_Connection DBPROP_AUTH_INTEGRATED "はい" の場合、ログイン検証に Windows 認証モードを使用するように OLE DB プロバイダー SQL Server Native Clientに指示します。 それ以外の場合は、ログイン検証にSQL Serverユーザー名とパスワードを使用するように OLE DB プロバイダー SQL Server Native Clientに指示し、UID キーワードと PWD キーワードを指定する必要があります。
TrustServerCertificate SSPROP_INIT_TRUST_SERVER_CERTIFICATE 文字列 "yes" と "no" を値として受け取ります。 既定値は "no" です。これはサーバー証明書が検証されることを示します。
UID DBPROP_AUTH_USERID SQL Server のログイン名。
UseProcForPrepare SSPROP_INIT_USEPROCFORPREP このキーワード (keyword)は非推奨となり、その設定は OLE DB プロバイダー SQL Server Native Client無視されます。
WSID SSPROP_INIT_WSID ワークステーション ID。

IDataInitialize::GetDataSource を利用する OLE DB アプリケーションで使用される接続文字列の構文は次のとおりです。

connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string

empty-string ::=

attribute ::= attribute-keyword=[quote]attribute-value[quote]

attribute-value ::= character-string

attribute-keyword ::= identifier

quote ::= " | '

プロパティの使用方法は、プロパティのスコープで許可される構文に従っている必要があります。 たとえば、WSID では中かっこ ( {} ) の引用符を使用し、Application Name では一重 ( ' ) または二重 ( " ) 引用符を使用します。 引用符で囲むことができるのは、文字列のプロパティのみです。 整数または列挙のプロパティを引用符で囲むと、"接続文字列は OLE DB 仕様に準拠していません" というエラーが発生します。

属性値は必要に応じて一重引用符または二重引用符で囲むことができます。常にこれらの引用符を使用すると、 値に英数字以外の文字が含まれる場合の問題を回避できます。 二重引用符の場合は、値の中に含めることもできます。

接続文字列キーワードの等号 (=) の後のスペース文字は、値を引用符で囲んだ場合でも、リテラルとして解釈されます。

接続文字列に次の表のプロパティが複数含まれている場合は、最後のプロパティの値が使用されます。

次の表では、IDataInitialize::GetDataSource と共に使用できるキーワードについて説明します。

Keyword 初期化プロパティ 説明
アプリケーション名 SSPROP_INIT_APPNAME アプリケーションを識別する文字列。
Application Intent SSPROP_INIT_APPLICATIONINTENT "ApplicationIntent" のシノニム。
ApplicationIntent SSPROP_INIT_APPLICATIONINTENT アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 有効値は、ReadOnlyReadWrite です。

既定値は ReadWrite です。 Always On可用性グループに対するSQL Server Native Clientのサポートの詳細については、「高可用性、ディザスター リカバリー SQL Server Native Clientサポート」を参照してください。
自動翻訳 SSPROP_INIT_AUTOTRANSLATE "AutoTranslate" のシノニム。
AutoTranslate SSPROP_INIT_AUTOTRANSLATE OEM/ANSI 文字の変換を構成します。 認識できる値は "true" と "false" です。
Connect Timeout DBPROP_INIT_TIMEOUT データ ソースの初期化が完了するのを待機する秒数。
Current Language SSPROP_INIT_CURRENTLANGUAGE SQL Server 言語の名前。
データ ソース DBPROP_INIT_DATASOURCE 組織内の SQL Server インスタンスの名前。

指定されなかった場合は、ローカル コンピューター上にある既定のインスタンスに接続します。

有効なアドレス構文の詳細については、このトピックで後述する Server ODBC キーワード (keyword)の説明を参照してください。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 使用するデータ型処理モードを指定します。 認識される値は、プロバイダー データ型の場合は "0"、SQL Server 2000 (8.x) データ型の場合は "80" です。
Failover Partner SSPROP_INIT_FAILOVERPARTNER データベース ミラーリングに使用するフェールオーバー サーバーの名前。
Failover Partner SPN SSPROP_INIT_FAILOVERPARTNERSPN フェールオーバー パートナーの SPN。 既定値は空の文字列です。 空の文字列を指定すると、SQL Server Native Clientはプロバイダーによって生成される既定の SPN を使用します。
初期カタログ DBPROP_INIT_CATALOG データベース名です。
初期ファイル名 SSPROP_INIT_FILENAME アタッチできるデータベースのプライマリ ファイルの名前 (完全なパス名を含む)。 AttachDBFileName を使用するには、プロバイダー文字列の DATABASE キーワードでデータベース名を指定する必要もあります。 データベースが以前にアタッチされていた場合、SQL Server により再アタッチされることはありません (アタッチされたデータベースがその接続の既定のデータベースとして使用されます)。
統合セキュリティ DBPROP_AUTH_INTEGRATED Windows 認証の値 "SSPI" を受け取ります。
MARS Connection SSPROP_INIT_MARSCONNECTION その接続で MARS (複数のアクティブな結果セット) を有効または無効にします。 認識できる値は "true" と "false" です。 既定値は "false" です。
Network Address SSPROP_INIT_NETWORKADDRESS 組織内の SQL Server インスタンスのネットワーク アドレス。

有効なアドレス構文の詳細については、このトピックで後述する「Address ODBC キーワード (keyword)」の説明を参照してください。
Network Library SSPROP_INIT_NETWORKLIBRARY 組織内の SQL Server インスタンスへの接続を確立するために使用するネットワーク ライブラリ。
Packet Size SSPROP_INIT_PACKETSIZE ネットワーク パケットのサイズ。 既定値は 4096 です。
パスワード DBPROP_AUTH_PASSWORD SQL Server のログイン パスワード。
Persist Security Info DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 文字列 "true" と "false" を値として受け取ります。 "false" の場合、データ ソース オブジェクトには機密の認証情報を保存できません
プロバイダー SQL Server Native Clientの場合、これは "SQLNCLI11" である必要があります。
Server SPN SSPROP_INIT_SERVERSPN サーバーの SPN。 既定値は空の文字列です。 空の文字列を指定すると、SQL Server Native Clientは既定のプロバイダーによって生成された SPN を使用します。
[Trust Server Certificate] SSPROP_INIT_TRUST_SERVER_CERTIFICATE 文字列 "true" と "false" を値として受け取ります。 既定値は "false" です。これはサーバー証明書が検証されることを示します。
Use Encryption for Data SSPROP_INIT_ENCRYPT データをネットワークに送信する前に暗号化するかどうかを指定します。 指定できる値は "true" と "false" です。 既定値は "false" です。
[ユーザー ID] DBPROP_AUTH_USERID SQL Server のログイン名。
Workstation ID SSPROP_INIT_WSID ワークステーション ID。

接続文字列の "Old Password" プロパティは SSPROP_AUTH_OLD_PASSWORD に設定され、現在の (または期限切れの) パスワードが設定されます。このパスワードをプロバイダー文字列のプロパティ経由で使用することはできません。

ADO (ActiveX Data Objects) の接続文字列のキーワード

ADO アプリケーションでは、ADODBConnection オブジェクトの ConnectionString プロパティが設定されるか、ADODBConnection オブジェクトの Open メソッドにパラメーターとして接続文字列が指定されます。

また、ADO アプリケーションでは、既定値がないプロパティにのみ、OLE DB IDBInitialize::Initialize メソッドで使用されるキーワードを利用できます。 アプリケーションにより、初期化文字列で ADO キーワードと IDBInitialize::Initialize キーワードが両方とも使われている場合、ADO キーワードの設定が使用されます。 アプリケーションでは ADO 接続文字列のキーワードのみを使用することを強くお勧めします。

ADO で使用される接続文字列の構文を次に示します。

connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string

empty-string ::=

attribute ::= attribute-keyword=["]attribute-value["]

attribute-value ::= character-string

attribute-keyword ::= identifier

属性値は必要に応じて二重引用符で囲むことができます。常に二重引用符を使用すると、 値に英数字以外の文字が含まれる場合の問題を回避できます。 属性値に二重引用符を含めることはできません。

次の表に、ADO 接続文字列と共に使用できるキーワードを示します。

Keyword 初期化プロパティ 説明
Application Intent SSPROP_INIT_APPLICATIONINTENT "ApplicationIntent" のシノニム。
ApplicationIntent SSPROP_INIT_APPLICATIONINTENT アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 有効値は、ReadOnlyReadWrite です。

既定値は ReadWrite です。 Always On可用性グループに対するSQL Server Native Clientのサポートの詳細については、「高可用性、ディザスター リカバリーのSQL Server Native Clientサポート」を参照してください。
アプリケーション名 SSPROP_INIT_APPNAME アプリケーションを識別する文字列。
自動翻訳 SSPROP_INIT_AUTOTRANSLATE "AutoTranslate" のシノニム。
AutoTranslate SSPROP_INIT_AUTOTRANSLATE OEM/ANSI 文字の変換を構成します。 認識できる値は "true" と "false" です。
Connect Timeout DBPROP_INIT_TIMEOUT データ ソースの初期化が完了するのを待機する秒数。
Current Language SSPROP_INIT_CURRENTLANGUAGE SQL Server 言語の名前。
データ ソース DBPROP_INIT_DATASOURCE 組織内の SQL Server インスタンスの名前。

指定されなかった場合は、ローカル コンピューター上にある既定のインスタンスに接続します。

有効なアドレス構文の詳細については、このトピックの Server ODBC キーワード (keyword)の説明を参照してください。
DataTypeCompatibility SSPROP_INIT_DATATYPECOMPATIBILITY 使用するデータ型処理モードを指定します。 認識できる値は、プロバイダー データ型を示す "0" および SQL Server 2000 データ型を示す "80" です。
Failover Partner SSPROP_INIT_FAILOVERPARTNER データベース ミラーリングに使用するフェールオーバー サーバーの名前。
Failover Partner SPN SSPROP_INIT_FAILOVERPARTNERSPN フェールオーバー パートナーの SPN。 既定値は空の文字列です。 空の文字列を指定すると、SQL Server Native Clientは既定のプロバイダーによって生成された SPN を使用します。
初期カタログ DBPROP_INIT_CATALOG データベース名です。
初期ファイル名 SSPROP_INIT_FILENAME アタッチできるデータベースのプライマリ ファイルの名前 (完全なパス名を含む)。 AttachDBFileName を使用するには、プロバイダー文字列の DATABASE キーワードでデータベース名を指定する必要もあります。 データベースが以前にアタッチされていた場合、SQL Server により再アタッチされることはありません (アタッチされたデータベースがその接続の既定のデータベースとして使用されます)。
統合セキュリティ DBPROP_AUTH_INTEGRATED Windows 認証の値 "SSPI" を受け取ります。
MARS Connection SSPROP_INIT_MARSCONNECTION その接続で MARS (複数のアクティブな結果セット) を有効または無効にします (SQL Server 2005 (9.x) 以降のサーバーの場合)。 認識できる値は "true" と "false" です。既定値は "false" です。
Network Address SSPROP_INIT_NETWORKADDRESS 組織内の SQL Server インスタンスのネットワーク アドレス。

有効なアドレス構文の詳細については、このトピックの「Address ODBC キーワード (keyword)」の説明を参照してください。
Network Library SSPROP_INIT_NETWORKLIBRARY 組織内の SQL Server インスタンスへの接続を確立するために使用するネットワーク ライブラリ。
Packet Size SSPROP_INIT_PACKETSIZE ネットワーク パケットのサイズ。 既定値は 4096 です。
パスワード DBPROP_AUTH_PASSWORD SQL Server のログイン パスワード。
Persist Security Info DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO 文字列 "true" と "false" を値として受け取ります。 "false" の場合、データ ソース オブジェクトには機密の認証情報を保存できません。
プロバイダー SQL Server Native Clientの場合、これは "SQLNCLI11" である必要があります。
Server SPN SSPROP_INIT_SERVERSPN サーバーの SPN。 既定値は空の文字列です。 空の文字列を指定すると、SQL Server Native Clientは既定のプロバイダーによって生成された SPN を使用します。
[Trust Server Certificate] SSPROP_INIT_TRUST_SERVER_CERTIFICATE 文字列 "true" と "false" を値として受け取ります。 既定値は "false" です。これはサーバー証明書が検証されることを示します。
Use Encryption for Data SSPROP_INIT_ENCRYPT データをネットワークに送信する前に暗号化するかどうかを指定します。 指定できる値は "true" と "false" です。 既定値は "false" です。
[ユーザー ID] DBPROP_AUTH_USERID SQL Server のログイン名。
Workstation ID SSPROP_INIT_WSID ワークステーション ID。

接続文字列の "Old Password" プロパティは SSPROP_AUTH_OLD_PASSWORD に設定され、現在の (または期限切れの) パスワードが設定されます。このパスワードをプロバイダー文字列のプロパティ経由で使用することはできません。

関連項目

SQL Server Native Client を使用したアプリケーションのビルド