ado的大 部分连接字符串的写法(来自codeproject)http://www.codeproject.com/database/connectionstrings.asp

sevencat 2003-09-17 02:53:26
Overview
Generally one of the first steps when you are trying to work with databases is open it. You can find several types of those and each have a different mode of connection. When you try to connect with your database sometimes, you don't Know the correct connection string that you must to use, Is for that I wrote this article. I wanted to compile the connection strings to the majority of knows databases...


ODBC DSN Less Connection
ODBC Driver for dBASE

strConnection = _T("Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;"
"Dbq=c:\\DatabasePath;");

Note: You must to specify the filename in the sql statement....
For Example:

CString strQuery = _T("Select Name, Address From Clients.dbf");



ODBC Driver for Excel

strConnection = _T("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;"
bq=C:\\DatabasePath\\DBSpreadSheet.xls;DefaultDir=c:\\databasepath;");
ODBC Driver for Text

strConnection = _T("Driver={Microsoft Text Driver (*.txt; *.csv)};"
"Dbq=C:\\DatabasePath\\;Extensions=asc,csv,tab,txt;");

If you are using tab delimited files, you must to create the schema.ini file, and you must to inform the Format=TabDelimited option in your connection string

Note: You must to specify the filename in the sql statement....
For Example:

CString strQuery = _T("Select Name, Address From Clients.csv");



Visual FoxPro

If you are using a database container a connection string is the following:

strConnection = _T("Driver={Microsoft Visual Foxpro Driver};UID=;"
ourceType=DBC;SourceDB=C:\\DatabasePath\\MyDatabase.dbc;Exclusive=No");
If you are working without a database container you must to change the SourceType parameter by DBF as in the following connection string:

strConnection = _T("Driver={Microsoft Visual Foxpro Driver};UID=;"
"SourceType=DBF;SourceDB=C:\\DatabasePath\\MyDatabase.dbc;Exclusive=No");



ODBC Driver for Access

strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
"Dbq=c:\\DatabasePath\\dbaccess.mdb;Uid=;Pwd=;");

If you are using a Workgroup (System database):
You need to inform the SystemDB Path, the User Name and its password.
For that You have Two solutions: Inform the user and password in the conecction string or in the moment of the open operation.
For Example:

strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
"Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;"
"SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;"
"Uid=Carlos Antollini;Pwd=carlos");

or may be strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
"Dbq=C:\\VC Projects\\ADO\\Samples\\AdoTest\\dbTestSecurity.mdb;"
"SystemDB=C:\\Program Files\\Microsoft Office\\Office\\SYSTEM.mdw;");
if(pDB.Open(strConnection, "DatabaseUser", "DatabasePass"))
{
DoSomething();
pDB.Close();
}

If you want to open in Exclusive mode:

strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
"Dbq=c:\\DatabasePath\dbaccess.mdb;Exclusive=1;");



ODBC Driver for Sql Server

For Standard Security:

strConnection = _T("Driver={SQL Server};Server=MyServerName;"
"Trusted_Connection=no;"
"Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;");

For Trusted Connection security: (Microsoft Windows NT integrated security)

strConnection = _T("Driver={SQL Server};Server=MyServerName;"
"Database=myDatabaseName;Uid=;Pwd=;");
Also you can use the parameter Trusted_Connection that indicates that you are using the Microsoft Windows NT Authentication Mode to authorize user access to the SQL Server database. For example:

strConnection = _T("Driver={SQL Server};Server=MyServerName;"
"Database=MyDatabaseName;Trusted_Connection=yes;");
If the Sql Server is running in the same computer you can replace the name of the server by the word (local) like in the following sample:

strConnection = _T("Driver={SQL Server};Server=(local);"
"Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;");

If you want to connect with a remote SQL Server you must to inform the address, the port, and the Network Library to use:

The Address Parameter must be an IP Address and must to include the port

The Network Parameter can be one of the following:

dbnmpntw Win32 Named Pipes
dbmssocn Win32 Winsock TCP/IP
dbmsspxn Win32 SPX/IPX
dbmsvinn Win32 Banyan Vines
dbmsrpcn Win32 Multi-Protocol (Windows RPC)
For more information see Q238949

strConnection = _T("Driver={SQL Server};Server=130.120.110.001;"
"Address=130.120.110.001,1052;Network=dbmssocn;Database=MyDatabaseName;"
"Uid=myUsername;Pwd=myPassword;");
ODBC Driver for Oracle

For the current Oracle ODBC Driver from Microsoft: strConnect = _T("Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;"
"Uid=MyUsername;Pwd=MyPassword;");

For the older Oracle ODBC Driver from Microsoft: strConnect = _T("Driver={Microsoft ODBC Driver for Oracle};"
"ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;");
ODBC Driver for MySQL

If you want to connect to a local database you can use a connection string like the following:

strConnect = _T("Driver={MySQL ODBC 3.51 Driver};Server=localhost;"
"Database=MyDatabase;User=MyUserName;Password=MyPassword;Option=4;");
If you want to connect with a remote database, You need to specify the Name of server or IP in the Server parameter. If the Port is distinct to 3306 (default port) you must to specify it.

strConnect = _T("Driver={mySQL ODBC 3.51 Driver};Server=MyRemoteHost;"
"Port=3306;Option=4;Database=MyDatabase;Uid=MyUsername;Pwd=MyPassword;");
The parameter Option can be one or more of the following values

1 The client can't handle that MyODBC returns the real width of a column.
2 The client can't handle that MySQL returns the true value of affected rows. If this flag is set then MySQL returns 'found rows' instead. One must have MySQL 3.21.14 or newer to get this to work.
4 Make a debug log in c:\myodbc.log. This is the same as putting MYSQL_DEBUG=d:t:O,c::\myodbc.log in `AUTOEXEC.BAT'
8 Don't set any packet limit for results and parameters.
16 Don't prompt for questions even if driver would like to prompt
32 Enable or disable the dynamic cursor support. This is not allowed in MyODBC 2.50.
64 Ignore use of database name in 'database.table.column'.
128 Force use of ODBC manager cursors (experimental).
256 Disable the use of extended fetch (experimental).
512 Pad CHAR fields to full column length.
1024 SQLDescribeCol() will return fully qualified column names.
2048 Use the compressed server/client protocol
4096 Tell server to ignore space after function name and before '(' (needed by PowerBuilder). This will make all function names keywords!
8192 Connect with named pipes to a mysqld server running on NT.
16384 Change LONGLONG columns to INT columns (some applications can't handle LONGLONG).
32768 Return 'user' as Table_qualifier and Table_owner from SQLTables (experimental)
65536 Read parameters from the client and odbc groups from `my.cnf'
131072 Add some extra safety checks (should not bee needed but...)
If you want to have many options, you should add the above flags! For example: 16 + 1024 = 1030 and use Option= 1030;

...全文
115 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
荣爵 2003-12-25
  • 打赏
  • 举报
回复
up
killghost 2003-12-23
  • 打赏
  • 举报
回复
关注
sevencat 2003-12-23
  • 打赏
  • 举报
回复
哪期CSDN开发高手呀?
这是CODEPROJECT上的,所以全是英文。
CloneCenter 2003-11-03
  • 打赏
  • 举报
回复
好文,顶啊!
XXSingle 2003-11-03
  • 打赏
  • 举报
回复
收藏!
Shiyl 2003-11-03
  • 打赏
  • 举报
回复
呵呵
好象是CSDN开发高手书上的东东哦!
不过还是应该感谢^o^
jsyhello 2003-11-03
  • 打赏
  • 举报
回复
Thanks
MartinWang 2003-11-02
  • 打赏
  • 举报
回复
收藏!精典!!:)
菜梗子 2003-11-02
  • 打赏
  • 举报
回复
收藏后慢慢
siwuge 2003-10-31
  • 打赏
  • 举报
回复
收藏后慢慢看,谢谢。
railgunman 2003-10-31
  • 打赏
  • 举报
回复
up
frogshero 2003-10-22
  • 打赏
  • 举报
回复
good
jingbianfc 2003-10-22
  • 打赏
  • 举报
回复
NO INTERBASE??
jingbianfc 2003-10-22
  • 打赏
  • 举报
回复
是我要的东西,
ADO的连接字串中两个属性的值
一是:EXTENDED PROPERTIES,我所知连FOXPRO的DBF可用DBASE IV
   连EXCEL可用EXCEL 8.0,,其它数据库的呢,有这样一份完整的表吗?
二是:JET OLEDB:ENGINE TYPE,连FOXPRO的DBF可用17,
   其它的呢,有这样一份完整的表吗?
我想很多人都想知道这个答案吧!!值得研究
听说微软有份DATA ACCESS的SDK文档,有这个说明吗?
haoguozhong 2003-10-20
  • 打赏
  • 举报
回复
up
sevencat 2003-09-17
  • 打赏
  • 举报
回复
Ussing a URL

strConnect = _T("Provider=MSOLAP;Data Source=http://MyOLAPServerName/;"
"Initial Catalog=MyOLAPDatabaseName;");
Ussing SSL

strConnect = _T("Provider=MSOLAP;Data Source=https://MyOLAPServerName/;"
"Initial Catalog=MyOLAPDatabaseName;");

For more information, see: OLE DB for OLAP, Connecting Using HTTP

OLE DB Provider for Oracle

OLE DB Provider for Oracle (from Microsoft)

The Microsoft OLE DB Provider for Oracle allows ADO to access Oracle databases.

strConnect = _T("Provider=MSDAORA;Data Source=MyOracleDB;User Id=myUsername;"
"Password=myPassword;");

For more information, see: Microsoft OLE DB Provider for Oracle

OLE DB Provider for Oracle (from Oracle)

For Standard Security:

strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;"
"User Id=myUsername;Password=myPassword;");

For a Trusted Connection:

OS Authenticated connect setting user ID to "/"

strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;"
"User Id=/;Password=;");

OS Authenticated connect using OSAuthent

strConnect = _T("Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;")

Note: "Data Source=" must be set to the appropriate Net8 name which is known to the naming method in use. For example, for Local Naming, it is the alias in the tnsnames.ora file; for Oracle Names, it is the Net8 Service Name.

For more information, see: Oracle Provider for OLE DB Developer's Guide



OLE DB Provider for Visual FoxPro

strConnect = _T("Provider=vfpoledb;"
"Data Source=C:\\DatabasePath\\MyDatabase.dbc;");

For more information, see: Microsoft OLE DB Provider for Visual FoxPro



OLE DB Provider for Index Server (By Chris Maunder)

strConnect = _T("provider=msidxs;Data Source=MyCatalog;");

For more information, see: Microsoft OLE DB Provider for Microsoft Indexing Service




OLE DB Data Link Connections


Data Link File - UDL

strConnection = _T("File Name=c:\\DataBasePath\\DatabaseName.udl;");

If you want to create a Data Link File, you can to make a new empty text file, change its extension by .udl, then make double click over the file and the operating system call by you the Data Link app.

sevencat 2003-09-17
  • 打赏
  • 举报
回复
ODBC Driver for AS400

strConnect = _T("Driver={Client Access ODBC Driver (32-bit)};System=myAS400;"
"Uid=myUsername;Pwd=myPassword;");
ODBC Driver for SyBase

strConnect = _T("Driver={Sybase System 10};Srvr=MyServerName;Uid=MyUsername;"
"Pwd=myPassword;");
ODBC Driver for Sybase Sql AnyWhere

strConnect = _T("ODBC;Driver=Sybase SQL Anywhere 5.0;"
"DefaultDir=C:\\DatabasePath\;Dbf=C:\\SqlAnyWhere50\\MyDatabase.db;"
"Uid=MyUsername;Pwd=MyPassword;Dsn=\"\";");

DSN Connection
ODBC DSN

strConnect = _T("DSN=MyDSN;Uid=MyUsername;Pwd=MyPassword;");




OLE DB Provider


OLE DB Provider for Sql Server

For Standard Security:

strConnect = _T("Provider=sqloledb;Data Source=MyServerName;"
"Initial Catalog=MyDatabaseName;"
"User Id=MyUsername;Password=MyPassword;");

For Trusted Connection security: (Microsoft Windows NT integrated security):

strConnect = _T("Provider=sqloledb;Data Source=MyServerName;"
"Initial Catalog=MyDatabaseName;"
"Integrated Security=SSPI;");

If you want to connect ta a "Named Instance" (SQL Server 2000) you must to specifiy Data Source=Servere Name\Instance Name like in the following example:

strConnect = _T("Provider=sqloledb;Data Source=MyServerName\MyInstanceName;"
"Initial Catalog=MyDatabaseName;User Id=MyUsername;Password=MyPassword;");
If you want To connect with a SQL Server running on the same computer, you must to specify the keyword (local) in the Data Source like in the following example:


strConnect = _T("Provider=sqloledb;Data Source=(local);"
"Initial Catalog=myDatabaseName;"
"User ID=myUsername;Password=myPassword;");

To connect to SQL Server running on a remote computer ( via an IP address): strConnect = _T("Provider=sqloledb;Network Library=DBMSSOCN;"
"Data Source=130.120.110.001,1433;"
"Initial Catalog=MyDatabaseName;User ID=MyUsername;"
"Password=MyPassword;");
OLE DB Provider for MySQL (By Todd Smith)

strConnection = _T("Provider=MySQLProv;Data Source=test");

Where test is the name of MySQL database. Also you can replace the name of the database by the following connection string: server=localhost;DB=test



OLE DB Provider for AS400

strConnect = _T("Provider=IBMDA400;Data source=myAS400;User Id=myUsername;"
"Password=myPassword;");

For more information, see: Using the OLE DB Provider for AS/400 and VSAM



OLE DB Provider for Active Directory

strConnect = _T("Provider=ADSDSOObject;User Id=myUsername;Password=myPassword;");

For more information, see: Microsoft OLE DB Provider for Microsoft Active Directory Service



OLE DB Provider for DB2

If you are using a TCP/IP connection:

strConnect = _T("Provider=DB2OLEDB;Network Transport Library=TCPIP;"
"Network Address=130.120.110.001;"
"Initial Catalog=MyCatalog;Package Collection=MyPackageCollection;"
"Default Schema=MySchema;User ID=MyUsername;Password=MyPassword;");

If you are using APPC connection:

strConnect = _T("Provider=DB2OLEDB;APPC Local LU Alias=MyLocalLUAlias;"
"APPC Remote LU Alias=MyRemoteLUAlias;Initial Catalog=MyCatalog;"
"Package Collection=MyPackageCollection;Default Schema=MySchema;"
"User ID=MyUsername;Password=MyPassword;");

For more information, see: Using the OLE DB Provider for DB2



OLE DB Provider for Microsoft Jet


Connecting to a Access File using the JET OLE DB Provider:
Using standard security:

strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;"
"Data Source=C:\\DatabasePath\\MmDatabase.mdb;"
"User Id=admin;Password=;");

If you are using a Workgroup (System database):

strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;"
"Data Source=C:\\DataBasePath\\mydb.mdb;"
"Jet OLEDB:System Database=MySystem.mdw;");
pRs.Open(strConnect, "MyUsername", "MyPassword");


Connecting to an Excel Spreadsheet using the JET OLE DB Provider: strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;"
"Data Source=C:\\DatabasePath\\DBSpreadSheet.xls;"
"Extended Properties=\"\"Excel 8.0;HDR=Yes;\"\";");

Note: If is "HDR=Yes" the provider will not include the first row of the selection into the recordset.
If is "HDR=No", the provider will include the first row of the cell range (or named ranged) into the recordset.

For more information, see: Q278973


Connecting to a Text File using the JET OLE DB Provider: strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\DatabasePath\\;"
"Extended Properties=\"\"text;"
"HDR=Yes;FMT=Delimited;\"\";");

Note: You must to specify the filename in the sql statement....
For Example:

CString strQuery = _T("Select Name, Address From Clients.txt");

For more information, see: Q262537


Connecting to an Outlook 2000 personal mail box using the JET OLE DB Provider: (By J. Cardinal) strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Outlook 9.0;"
"MAPILEVEL=;DATABASE=C:\\Temp\\;")

Replace c:\temp with any temporary folder. It will create a schema file in that folder when you open it which shows all the fields available. Blank mapilevel indicates top level of folders)


Connecting to an Exchange mail box through JET: (By J. Cardinal) strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Exchange 4.0;"
"MAPILEVEL=Mailbox - Pat Smith|;DATABASE=C:\\Temp\\;")

You must to replace c:\temp with any temporary folder.

Replace Pat Smith with name of mail box and must keep vertical pipe character | to indicate top level of folders. Place sub folder after vertical pipe if accessing specific folder

Note: You can enter queries against the mail store just like a database...
For example:

CString strQuery = _T("SQL "SELECT Contacts.* FROM Contacts;");

For more information, see: The Jet 4.0 Exchange/Outlook IISAM



OLE DB Provider for ODBC Databases

if you want to connect with a Microsoft Access database:

strConnect = _T("Provider=MSDASQL;Driver={Microsoft Access Driver (*.mdb)};"
"Dbq=c:\\DatabasePath\\MyDatabase.mdb;Uid=MyUsername;Pwd=MyPassword;");

If you want to connect with a SQL Server database:

strConnect = _T("Provider=MSDASQL;Driver={SQL Server};Server=MyServerName;"
"Database=MyDatabaseName;Uid=MyUsername;Pwd=MyPassword;");

If you want to use DSN:

strConnect = _T("Provider=MSDASQL;PersistSecurityInfo=False;"
"Trusted_Connection=Yes;"
"Data Source=MyDSN;catalog=MyDatabase;");

For more information, see: Microsoft OLE DB Provider for ODBC



OLE DB Provider for OLAP

Microsoft® OLE DB for Online Analytical Processing (OLAP) is a set of objects and interfaces that extends the ability of OLE DB to provide access to multidimensional data stores.

strConnect = _T("Provider=MSOLAP;Data Source=MyOLAPServerName;"
"Initial Catalog=MyOLAPDatabaseName;");

Connection ussing HTTP:

This feature enables a client application to connect to an Analysis server through Microsoft® Internet Information Services (IIS) by specifying a URL in the Data Source property in the client application's connection string. This connection method allows PivotTable® Service to tunnel through firewalls or proxy servers to the Analysis server. A special Active Server Pages (ASP) page, Msolap.asp, enables the connection through IIS. The directory in which this file resides must be included as part of the URL when connecting to the server (for example, http://www.myserver.com/myolap/).

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧