Using Connection String Keywords with SQL Native Client
Some SQL Native Client APIs use connection strings to specify connection attributes. Connection strings are lists of keyword and associated values; each keyword identifies a particular connection attribute.
Note
SQL Native Client allows ambiguity in connection strings to maintain backward compatibility (for example, some keywords may be specified more than once, and conflicting keywords may be allowed with resolution based on position or precedence). Future releases of SQL Native Client will not allow ambiguity in connection strings. It is good practice when modifying applications to use SQL Native Client to eliminate any dependency on connection string ambiguity.
The following sections describe the keywords that can be used with the SQL Native Client OLE DB provider, the SQL Native Client ODBC driver, and ActiveX Data Objects (ADO) when using SQL Native Client as the data provider.
OLE DB Provider Connection String Keywords
There are two ways OLE DB applications can initialize data source objects:
- IDBInitialize::Initialize
- IDataInitialize::GetDataSource
In the first case, a provider string can be used to initialize connection properties by setting the property DBPROP_INIT_PROVIDERSTRING in the DBPROPSET_DBINIT property set. In the second case, an initialization string can be passed to IDataInitialize::GetDataSource method to initialize connection properties. Both methods initialize the same OLE DB connection properties, but different sets of keywords are used. The set of keywords used by IDataInitialize::GetDataSource is at minimum the description of properties within the initialization property group.
Boolean properties set in provider strings via DBPROP_INIT_PROVIDERSTRING values are set using the values "yes" and "no." Boolean properties set in initialization strings using IDataInitialize::GetDataSource are set using the values "true" and "false."
Applications using IDataInitialize::GetDataSource can also use the keywords used by IDBInitialize::Initialize but only for properties that do not have a default value. If an application uses both the IDataInitialize::GetDataSource keyword and the IDBInitialize::Initialize keyword in the initialization string, the IDataInitialize::GetDataSource keyword setting is used. It is strongly recommended that applications do not use IDBInitialize::Initialize keywords in IDataInitialize:GetDataSource connection strings, as this behavior may not be maintained in future releases.
Connection strings used by OLE DB applications using DBPROP_INIT_PROVIDERSTRING with IDBInitialize::Initialize have the following syntax:
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=[{]attribute-value[}]
attribute-value ::= character-string
attribute-keyword ::= identifier
Attribute values can optionally be enclosed in braces, and it is good practice to do so. This avoids problems when attribute values contain non-alphanumeric characters. The first closing brace in the value is assumed to terminate the value, so values cannot contain closing brace characters.
The following table describes the keywords that may be used with DBPROP_INIT_PROVIDERSTRING.
Keyword | Initialization property | Description |
---|---|---|
Addr |
SSPROP_INIT_NETWORKADDRESS |
Synonym for "Address." |
Address |
SSPROP_INIT_NETWORKADDRESS |
The network address of an instance of SQL Server in the organization. |
APP |
SSPROP_INIT_APPNAME |
The string identifying the application. |
AttachDBFileName |
SSPROP_INIT_FILENAME |
The name of the primary file (include the full path name) of an attachable database. To use AttachDBFileName, you must also specify the database name with the provider string Database keyword. If the database was previously attached, SQL Server does not reattach it (it uses the attached database as the default for the connection). |
Auto Translate |
SSPROP_INIT_AUTOTRANSLATE |
Synonym for "AutoTranslate." |
AutoTranslate |
SSPROP_INIT_AUTOTRANSLATE |
Configures OEM/ANSI character translation. Recognized values are "yes" and "no." |
Database |
DBPROP_INIT_CATALOG |
The database name. |
DataTypeCompatibility |
SSPROP_INIT_DATATYPECOMPATIBILITY |
Specifies the mode of data type handling to use. Recognized values are "0" for provider data types and "80" for SQL Server 2000 data types. |
Encrypt |
SSPROP_INIT_ENCRYPT |
Specifies whether data should be encrypted before sending it over the network. Possible values are "yes" and "no." The default value is "no." |
FailoverPartner |
SSPROP_INIT_FAILOVERPARTNER |
The name of the failover server used for database mirroring. |
Language |
SSPROPT_INIT_CURRENTLANGUAGE |
The SQL Server language. |
MarsConn |
SSPROP_INIT_MARSCONNECTION |
Enables or disables multiple active result sets (MARS) on the connection if the server is SQL Server 2005 or later. Recognized values are "yes" and "no." The default is "no." |
Net |
SSPROP_INIT_NETWORKLIBRARY |
Synonym for "Network." |
Network |
SSPROP_INIT_NETWORKLIBRARY |
The network library used to establish a connection to an instance of SQL Server in the organization. |
Network Library |
SSPROP_INIT_NETWORKLIBRARY |
Synonym for "Network." |
PacketSize |
SSPROP_INIT_PACKETSIZE |
Network packet size. The default is 4096. |
PersistSensitive |
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO |
Accepts the strings "yes" and "no" as values. When "no," the data source object is not allowed to persist sensitive authentication information |
PWD |
DBPROP_AUTH_PASSWORD |
The SQL Server login password. |
Server |
DBPROP_INIT_DATASOURCE |
The name of an instance of SQL Server in the organization. |
Timeout |
DBPROP_INIT_TIMEOUT |
The amount of time (in seconds) to wait for data source initialization to complete. |
Trusted_Connection |
DBPROP_AUTH_INTEGRATED |
When "yes," instructs the SQL Native Client OLE DB provider to use Windows Authentication Mode for login validation. Otherwise instructs the SQL Native Client OLE DB provider to use a SQL Server username and password for login validation, and the UID and PWD keywords must be specified. |
TrustServerCertificate |
SSPROP_INIT_TRUST_SERVER_CERTIFICATE |
Accepts the strings "yes" and "no" as values. The default value is "no," which means that the server certificate will be validated. |
UID |
DBPROP_AUTH_USERID |
The SQL Server login name. |
UseProcForPrepare |
SSPROP_INIT_USEPROCFORPREP |
This keyword is deprecated, and its setting is ignored by the SQL Native Client OLE DB Provider. |
WSID |
SSPROP_INIT_WSID |
The workstation identifier. |
Connection strings used by OLE DB applications using IDataInitialize::GetDataSource have the following syntax:
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 ::= " | '
Attribute values can optionally be enclosed in single or double quotes, and it is good practice to do so. This avoids problems when values contain non-alphanumeric characters. The quote character used can also appear in values, provided that it is doubled.
The following table describes the keywords that may be used with IDataInitialize::GetDataSource:
Keyword | Initialization property | Description |
---|---|---|
Application Name |
SSPROP_INIT_APPNAME |
The string identifying the application. |
Auto Translate |
SSPROP_INIT_AUTOTRANSLATE |
Synonym for "AutoTranslate." |
AutoTranslate |
SSPROP_INIT_AUTOTRANSLATE |
Configures OEM/ANSI character translation. Recognized values are "true" and "false." |
Connect Timeout |
DBPROP_INIT_TIMEOUT |
The amount of time (in seconds) to wait for data source initialization to complete. |
Current Language |
SSPROPT_INIT_CURRENTLANGUAGE |
The SQL Server language name. |
Data Source |
DBPROP_INIT_DATASOURCE |
The name of an instance of SQL Server in the organization. |
DataTypeCompatibility |
SSPROP_INIT_DATATYPECOMPATIBILITY |
Specifies the mode of data type handling to use. Recognized values are "0" for provider data types and "80" for SQL Server 2000 data types. |
Failover Partner |
SSPROP_INIT_FAILOVERPARTNER |
The name of the failover server used for database mirroring. |
Initial Catalog |
DBPROP_INIT_CATALOG |
The database name. |
Initial File Name |
SSPROP_INIT_FILENAME |
The name of the primary file (include the full path name) of an attachable database. To use AttachDBFileName, you must also specify the database name with the provider string DATABASE keyword. If the database was previously attached, SQL Server does not reattach it (it uses the attached database as the default for the connection). |
Integrated Security |
DBPROP_AUTH_INTEGRATED |
Accepts the value "SSPI" for Windows Authentication. |
MARS Connection |
SSPROP_INIT_MARSCONNECTION |
Enables or disables multiple active result sets (MARS) on the connection if the server is SQL Server 2005 or later. Recognized values are "true" and "false." The default is "false." |
Network Address |
SSPROP_INIT_NETWORKADDRESS |
The network address of an instance of SQL Server in the organization. |
Network Library |
SSPROP_INIT_NETWORKLIBRARY |
The network library used to establish a connection to an instance of SQL Server in the organization. |
Packet Size |
SSPROP_INIT_PACKETSIZE |
Network packet size. The default is 4096. |
Password |
DBPROP_AUTH_PASSWORD |
The SQL Server login password. |
Persist Security Info |
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO |
Accepts the strings "true" and "false" as values. When "false," the data source object is not allowed to persist sensitive authentication information |
Provider |
|
For SQL Native Client, this should be "SQLNCLI." |
Trust Server Certificate |
SSPROP_INIT_TRUST_SERVER_CERTIFICATE |
Accepts the strings "true" and "false" as values. The default value is "false," which means that the server certificate will be validated. |
Use Encryption for Data |
SSPROP_INIT_ENCRYPT |
Specifies whether data should be encrypted before sending it over the network. Possible values are "true" and "false." The default value is "false." |
User ID |
DBPROP_AUTH_USERID |
The SQL Server login name. |
Workstation ID |
SSPROP_INIT_WSID |
The workstation identifier. |
ODBC Driver Connection String Keywords
ODBC applications use connection strings as a parameters to the SQLDriverConnect and SQLBrowseConnect functions.
Connection strings used by ODBC have the following syntax:
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=[{]attribute-value[}]
attribute-value ::= character-string
attribute-keyword ::= identifier
Attribute values can optionally be enclosed in braces, and it is good practice to do so. This avoids problems when attribute values contain non-alphanumeric characters. The first closing brace in the value is assumed to terminate the value, so values cannot contain closing brace characters.
The following table describes the keywords that may be used with an ODBC connection string.
Keyword | Description |
---|---|
Addr |
Synonym for "Address." |
Address |
The network address of the server running an instance of SQL Server. Address is usually the network name of the server, but can be other names such as a pipe, or a TCP/IP port and socket address. Beginning with SQL Server 2005 Service Pack 1, the value of Address takes precedence over the value passed to Server in ODBC connection strings when using SQL Native Client. Also note that |
AnsiNPW |
When "yes", the driver uses ANSI-defined behaviors for handling NULL comparisons, character data padding, warnings, and NULL concatenation. When "no", ANSI defined behaviors are not exposed. For more information about ANSI NPW behaviors, see Effects of SQL-92 Options. |
APP |
Name of the application calling SQLDriverConnect (optional). If specified, this value is stored in the master.dbo.sysprocesses column program_name and is returned by sp_who and the APP_NAME functions. |
AttachDBFileName |
Name of the primary file of an attachable database. Include the full path and escape any \ characters if using a C character string variable:
This database is attached and becomes the default database for the connection. To use AttachDBFileName you must also specify the database name in either the SQLDriverConnect DATABASE parameter or the SQL_COPT_CURRENT_CATALOG connection attribute. If the database was previously attached, SQL Server does not reattach it; it uses the attached database as the default for the connection. |
AutoTranslate |
When "yes," ANSI character strings sent between the client and server are translated by converting through Unicode to minimize problems in matching extended characters between the code pages on the client and the server. Client SQL_C_CHAR data sent to a SQL Server char, varchar, or text variable, parameter, or column is converted from character to Unicode using the client ANSI code page (ACP), then converted from Unicode to character using the ACP of the server. SQL Server char, varchar, or text data sent to a client SQL_C_CHAR variable is converted from character to Unicode using the server ACP, then converted from Unicode to character using the client ACP. These conversions are performed on the client by the SQL Native Client ODBC driver. This requires that the same ANSI code page (ACP) used on the server be available on the client. These settings have no effect on the conversions that occur for these transfers:
When "no," character translation is not performed. The SQL Native Client ODBC driver does not translate client ANSI character SQL_C_CHAR data sent to char, varchar, or text variables, parameters, or columns on the server. No translation is performed on char, varchar, or text data sent from the server to SQL_C_CHAR variables on the client. If the client and SQL Server are using different ACPs, extended characters may be misinterpreted. |
Database |
Name of the default SQL Server database for the connection. If Database is not specified, the default database defined for the login is used. The default database from the ODBC data source overrides the default database defined for the login. The database must be an existing database unless AttachDBFileName is also specified. If AttachDBFileName is also specified, the primary file it points to is attached and given the database name specified by Database. |
Driver |
Name of the driver as returned by SQLDrivers. The keyword value for the SQL Native Client ODBC driver is "{SQL Native Client}". The Server keyword is required if Driver is specified and DriverCompletion is set to SQL_DRIVER_NOPROMPT. |
DSN |
Name of an existing ODBC user or system data source. |
Encrypt |
Specifies whether data should be encrypted before sending it over the network. Possible values are "yes" and "no". The default value is "no". |
Fallback |
This keyword is deprecated, and its setting is ignored by the SQL Native Client ODBC driver. |
Failover_Partner |
Name of the failover partner server to be used if a connection cannot be made to the primary server. |
FileDSN |
Name of an existing ODBC file data source. |
Language |
SQL Server language name (optional). SQL Server can store messages for multiple languages in sysmessages. If connecting to a SQL Server with multiple languages, Language specifies which set of messages are used for the connection. |
MARS_Connection |
Enables or disables multiple active result sets (MARS) on the connection if the server is SQL Server 2005 or later. Recognized values are "yes" and "no." The default is "no." |
Net |
Synonym for "Network." |
Network |
When dbnmpntw named pipes are used, when dbmssocn TCP/IP are used. Using this keyword is not recommended; use SQL Server Configuration Manager to specify network protocols instead. |
PWD |
The password for the SQL Server login account specified in the UID parameter. PWD need not be specified if the login has a NULL password or when using Windows Authentication ( |
QueryLog_On |
When "yes," logging long-running query data is enabled on the connection. When "no," long-running query data is not logged. |
QueryLogFile |
Full path and file name of a file to use to log data on long-running queries. |
QueryLogTime |
Digit character string specifying the threshold (in milliseconds) for logging long-running queries. Any query that does not get a response in the time specified is written to the long-running query log file. |
QuotedId |
When "yes," QUOTED_IDENTIFIERS is set ON for the connection, SQL Server uses the SQL-92 rules regarding the use of quotation marks in SQL statements. When no, QUOTED_IDENTIFIERS is set OFF for the connection. SQL Server then follows the legacy Transact-SQL rules regarding the use of quotation marks in SQL statements. For more information, see Effects of SQL-92 Options. |
Regional |
When "yes," the SQL Native Client ODBC driver uses client settings when converting currency, date, and time data to character data. The conversion is one way only; the driver does not recognize non-ODBC standard formats for date strings or currency values within; for example, a parameter used in an INSERT or UPDATE statement. When "no," the driver uses ODBC standard strings to represent currency, date, and time data that is converted to character data. |
SaveFile |
Name of an ODBC data source file into which the attributes of the current connection are saved if the connection is successful. |
Server |
The name of an instance of SQL Server to connect to. The value must be either the name of a server on the network, or the name of a SQL Server Configuration Manager advanced server entry. You can enter (local) as the server name to connect to a copy of SQL Server running on the same computer. SQL Server 2000 and later supports multiple instances of SQL Server running on the same computer. To specify a named instance of SQL Server, the server name is specified as ServerName\InstanceName. Server is required. Beginning with SQL Server 2005 Service Pack 1, spaces are ignored at the beginning of the value passed to Server in ODBC connection strings when using SQL Native Client. |
StatsLog_On |
When "yes," enables the capture of SQL Native Client ODBC driver performance data. When "no," SQL Native Client ODBC driver performance data is not available on the connection. |
StatsLogFile |
Full path and file name of a file used to record SQL Native Client ODBC driver performance statistics. |
Trusted_Connection |
When "yes," instructs the SQL Native Client ODBC driver to use Windows Authentication Mode for login validation. Otherwise instructs the SQL Native Client ODBC driver to use a SQL Server username and password for login validation, and the UID and PWD keywords must be specified. |
TrustServerCertificate |
When used with Encrypt, enables encryption using a self-signed server certificate. |
UID |
A valid SQL Server login account. UID need not be specified when using Windows Authentication. |
UseProcForPrepare |
This keyword is deprecated, and its setting is ignored by the SQL Native Client ODBC Driver. |
WSID |
The workstation ID. Typically, this is the network name of the computer on which the application resides (optional). If specified, this value is stored in the master.dbo.sysprocesses column hostname and is returned by sp_who and the HOST_NAME function. |
Note
Regional conversion settings apply to currency, numeric, date, and time data types. The conversion setting is only applicable to output conversion and is only visible when currency, numeric, date, or time values are converted to character strings.
The SQL Native Client ODBC driver uses the locale registry settings for the current user. The driver does not honor the current thread's locale if the application sets it after connection by, for example, calling SetThreadLocale.
Altering the regional behavior of a data source can cause application failure. An application that parses date strings, and expects date strings to appear as defined by ODBC, could be adversely affected by altering this value.
ActiveX Data Objects (ADO) Connection String Keywords
ADO applications set the ConnectionString property of ADODBConnection objects or supply a connection string as a parameter to the Open method of ADODBConnection objects.
ADO applications can also use the keywords used by the OLE DB IDBInitialize::Initialize method, but only for properties that do not have a default value. If an application uses both the ADO keywords and the IDBInitialize::Initialize keywords in the initialization string, the ADO keyword setting will be used. It is strongly recommended that applications only use ADO connection string keywords.
Connection strings used by ADO have the following syntax:
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=["]attribute-value["]
attribute-value ::= character-string
attribute-keyword ::= identifier
Attribute values can optionally be enclosed in double quotes, and it is good practice to do so. This avoids problems when values contain non-alphanumeric characters. Attribute values cannot contain double quotes.
The following table describes the keywords that may be used with an ADO connection string:
Keyword | Initialization property | Description |
---|---|---|
Application Name |
SSPROP_INIT_APPNAME |
The string identifying the application. |
Auto Translate |
SSPROP_INIT_AUTOTRANSLATE |
Synonym for "AutoTranslate." |
AutoTranslate |
SSPROP_INIT_AUTOTRANSLATE |
Configures OEM/ANSI character translation. Recognized values are "true" and "false." |
Connect Timeout |
DBPROP_INIT_TIMEOUT |
The amount of time (in seconds) to wait for data source initialization to complete. |
Current Language |
SSPROPT_INIT_CURRENTLANGUAGE |
The SQL Server language name. |
Data Source |
DBPROP_INIT_DATASOURCE |
The name of an instance of SQL Server in the organization. |
DataTypeCompatibility |
SSPROP_INIT_DATATYPECOMPATIBILITY |
Specifies the mode of data type handling that will be used. Recognized values are "0" for provider data types and "80" for SQL Server 2000 data types. |
Failover Partner |
SSPROP_INIT_FAILOVERPARTNER |
The name of the failover server used for database mirroring. |
Initial Catalog |
DBPROP_INIT_CATALOG |
The database name. |
Initial File Name |
SSPROP_INIT_FILENAME |
The name of the primary file (include the full path name) of an attachable database. To use AttachDBFileName, you must also specify the database name with the provider string DATABASE keyword. If the database was previously attached, SQL Server does not reattach it (it uses the attached database as the default for the connection). |
Integrated Security |
DBPROP_AUTH_INTEGRATED |
Accepts the value "SSPI" for Windows Authentication. |
MARS Connection |
SSPROP_INIT_MARSCONNECTION |
Enables or disables multiple active result sets (MARS) on the connection if the server is SQL Server 2005 or later. Recognized values are "true" and "false".The default is "false." |
Network Address |
SSPROP_INIT_NETWORKADDRESS |
The network address of an instance of SQL Server in the organization. |
Network Library |
SSPROP_INIT_NETWORKLIBRARY |
The network library used to establish a connection to an instance of SQL Server in the organization. |
Packet Size |
SSPROP_INIT_PACKETSIZE |
Network packet size. The default is 4096. |
Password |
DBPROP_AUTH_PASSWORD |
The SQL Server login password. |
Persist Security Info |
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO |
Accepts the strings "true" and "false" as values. When "false" the data source object is not allowed to persist sensitive authentication information |
Provider |
|
For SQL Native Client, this should be "SQLNCLI." |
Trust Server Certificate |
SSPROP_INIT_TRUST_SERVER_CERTIFICATE |
Accepts the strings "true" and "false" as values. The default value is "false," which means that the server certificate will be validated. |
Use Encryption for Data |
SSPROP_INIT_ENCRYPT |
Specifies whether data should be encrypted before sending it over the network. Possible values are "true" and "false". The default value is "false." |
User ID |
DBPROP_AUTH_USERID |
The SQL Server login name. |
Workstation ID |
SSPROP_INIT_WSID |
The workstation identifier. |
See Also
Other Resources
Building Applications with SQL Native Client
Help and Information
Getting SQL Server 2005 Assistance
Change History
Release | History |
---|---|
17 July 2006 |
|