次の方法で共有


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

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

重要

SQL Server Native Client (SNAC) は同梱されていません。

  • SQL Server 2022 (16.x) 以降のバージョン
  • SQL Server Management Studio 19 以降のバージョン

SQL Server Native Client (SQLNCLI または SQLNCLI11) と従来の Microsoft OLE DB Provider for SQL Server (SQLOLEDB) は、新しいアプリケーション開発には推奨されません。

新しいプロジェクトの場合は、次のいずれかのドライバーを使用します。

SQL Server データベース エンジン (バージョン 2012 から 2019) のコンポーネントとして付属する SQLNCLI については、この「サポート ライフサイクルの例外」を参照してください。

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

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

Note

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 接続文字列と共に使用できるキーワードを示します。

キーワード 説明
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 (名前付きパイプ) を指定できます。 プロトコルの詳細については、「クライアント プロトコルの構成」を参照してください。

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

port は、指定したサーバー上の接続先のポートです。 既定では、SQL Server はポート 1433 を使用します。
AnsiNPW "yes" の場合、ANSI で定められた動作に従って NULL の比較、文字データの埋め込み、警告、および NULL 連結が処理されます。 "no" の場合、ANSI で定められた動作が公開されません。 ANSI NPW の動作の詳細については、「ISO オプションの Effects」を参照してください。
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 support for high availability, disaster Recoveryを参照してください。
AttachDBFileName アタッチできるデータベースのプライマリ ファイルの名前。 この名前には完全なパス名を指定します。また C 文字列変数を使用する場合は、\ 文字をエスケープしてください。

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

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

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

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

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

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

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

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

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

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

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

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

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

ドライバー名の詳細については、「 SQL Server Native Client のヘッダー ファイルとライブラリ ファイルの使用を参照してください。
DSN 既存の ODBC ユーザー データ ソースまたはシステム データ ソースの名前。 このキーワードは、 ServerNetwork、および Address キーワードで指定できる値をオーバーライドします。
Encrypt データをネットワークに送信する前に暗号化するかどうかを指定します。 指定できる値は、"yes"/"mandatory"(18.0 以降)、"no"/"optional"(18.0 以降)、"strict"(18.0 以降) です。 既定値はバージョン 18.0 以降では "yes" で、以前のバージョンでは "no" です。
フォールバック このキーワードは非推奨となり、その設定は 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" です。 既定値は "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 support for high availability, disaster Recoveryを参照してください。
Net "Network" のシノニム。
Network 有効な値は、 dbnmpntw (名前付きパイプ) と dbmssocn (TCP/IP) です。

Network キーワードの値と、Server キーワードのプロトコル プレフィックスの両方を指定するとエラーになります。
PWD UID パラメーターで指定された SQL Server ログイン アカウントのパスワード。 ログインに NULL パスワードがある場合、または Windows 認証 (Trusted_Connection = yes) を使用する場合は PWD を指定する必要はありません。
QueryLog_On "yes" の場合、その接続では、実行時間の長いクエリのデータに関するログを記録できます。 "no" の場合、実行時間の長いクエリのデータに関するログは記録されません。
QueryLogFile 実行時間の長いクエリのデータをログに記録する場合に使用するファイルの完全なパスとファイル名。
QueryLogTime 実行時間の長いクエリをログに記録するためのしきい値 (ミリ秒) を指定する数字文字列。 指定時間内に応答が返ってこないクエリは、実行時間の長いクエリ用のログ ファイルに記録されます。
QuotedId "yes" の場合、接続に対して QUOTED_IDENTIFIER が ON に設定されている場合、SQL Server は SQL ステートメントでの引用符の使用に関する ISO 規則を使用します。 いいえの場合、QUOTED_IDENTIFIERは接続に対して OFF に設定されます。 SQL Server は、SQL ステートメントでの引用符の使用に関する従来の Transact-SQL 規則に従います。 詳細については、「ISO オプションの Effects」を参照してください。
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 のサポートの詳細については、「 SQL Server Native Client Support for LocalDB」を参照してください。

名前付きインスタンスを指定する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$MYINST01)、および名前付きパイプの既定の名前 (sql/query) を指定します。

protocolNetwork キーワードが指定されていない場合、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 "はい" の場合、SQL Server Native Client ODBC ドライバーのパフォーマンス データのキャプチャを有効にします。 "いいえ" の場合、SQL Server Native Client ODBC ドライバーのパフォーマンス データは接続で使用できません。
StatsLogFile SQL Server Native Client ODBC ドライバーのパフォーマンス統計を記録するために使用されるファイルの完全なパスとファイル名。
Trusted_Connection "yes" の場合、ログイン検証に Windows 認証モードを使用するように SQL Server Native Client ODBC ドライバーに指示します。 それ以外の場合は、ログイン検証に SQL Server のユーザー名とパスワードを使用するように SQL Server Native Client ODBC ドライバーに指示し、UID キーワードと PWD キーワードを指定する必要があります。
TrustServerCertificate Encrypt と共に使用すると、自己署名サーバー証明書を使用した暗号化が有効になります。
UID 有効な SQL Server ログイン アカウント。 Windows 認証を使用する場合は UID を指定する必要はありません。
UseProcForPrepare このキーワードは非推奨となり、その設定は SQL Server Native Client ODBC ドライバーでは無視されます。
WSID ワークステーション ID。 通常は、アプリケーションが実装されているコンピューターのネットワーク名です (省略可)。 指定した場合、この値は master.dbo.sysprocesseshostname に格納され、 sp_who および HOST_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 キーワードの説明を参照してください。
APP SSPROP_INIT_APPNAME アプリケーションを識別する文字列。
ApplicationIntent SSPROP_INIT_APPLICATIONINTENT アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 有効値は、ReadOnlyReadWrite です。

既定値は ReadWrite です。 ALWAYS On 可用性グループに対する SQL Server Native Client のサポートの詳細については、「 SQL Server Native Client support for high availability, disaster Recoveryを参照してください。
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 を使用します。
Language 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 キーワードの説明を参照してください。
ServerSPN SSPROP_INIT_SERVERSPN サーバーの SPN。 既定値は空の文字列です。 空の文字列を指定すると、SQL Server Native Client はプロバイダーによって生成された既定の SPN を使用します。
タイムアウト DBPROP_INIT_TIMEOUT データ ソースの初期化が完了するのを待機する秒数。
Trusted_Connection DBPROP_AUTH_INTEGRATED "はい" の場合、ログイン検証に Windows 認証モードを使用するように SQL Server Native Client OLE DB プロバイダーに指示します。 それ以外の場合は、ログイン検証に SQL Server のユーザー名とパスワードを使用するように SQL Server Native Client OLE DB プロバイダーに指示し、UID キーワードと PWD キーワードを指定する必要があります。
TrustServerCertificate SSPROP_INIT_TRUST_SERVER_CERTIFICATE 文字列 "yes" と "no" を値として受け取ります。 既定値は "no" です。これはサーバー証明書が検証されることを示します。
UID DBPROP_AUTH_USERID SQL Server のログイン名。
UseProcForPrepare SSPROP_INIT_USEPROCFORPREP このキーワードは非推奨となり、SQL Server Native Client OLE DB プロバイダーではその設定は無視されます。
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 support for high availability, disaster Recoveryを参照してください。
自動翻訳 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 キーワードの説明を参照してください。
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 キーワードの説明を参照してください。
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 support for high availability, disaster Recoveryを参照してください。
アプリケーション名 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 キーワードの説明を参照してください。
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 キーワードの説明を参照してください。
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。

Note

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

関連項目

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