ADO

1.添加ADO类型库文件

#import "C:\Program Files\Common Files\System\ADO\msado15.dll" 
no_namespace rename(
"EOF""EndOfFile")

 

程序在编译过程中,VC++会读出msado15.dll中的类型库信息,自动产生两个该类型库的头文件和实现文件msado15.tlh和msado15.tli(在您的Debug或Release目录下)。在这两个文件里定义了ADO的所有对象和方法,以及一些枚举型的常量等。我们的程序只要直接调用这些方法就行了

 

还可以在VC编译器的系统路径中进行添加:在“工具”->“选项”中弹出选项对话框,如下图所示:

 

则可以这样导入ADO类型库文件

#import<msado15.dll> no_namespace rename("EOF","adoEOF")

 

 不使用no_namespace属性

#import<msado15.dll> rename("EOF","adoEOF")

 

2.初始化COM对象

如果是控制台程序,则如下进行初始化:

CoInitialize(NULL);

 
CoUninitialize();

如果是基于MFC的程序,则可以如下进行初始化:

AfxOleInit();

 

3.声明和实例化一个连接对象

 

//方法1:声明和实例化一个连接对象

_ConnectionPtr pConnection(__uuidof(Connection));


//方法2:声明和实例化一个连接对象

_ConnectionPtr pConnection =NULL;

//ADODB::_ConnectionPtr pConnection =NULL;不使用no_namespace属性

HRESULT hr = S_OK;
hr
=pConnection.CreateInstance(__uuidof(Connection) );

//hr=pConnection.CreateInstance(__uuidof(ADODB::Connection) );不使用no_namespace属性

 

/****************************************************
  推荐使用第二种方法声明和实例化一个对象,因为如果
  出现错误,_com_ptr_t的构造函数不会返回一个失败的
  HRESULT,所以第一种方法无法测试创建ADO对象成功与否
****************************************************
*/

 

 4.建立与数据库连接

建立ADO数据库连接过程中,关键是设置好连接字符串

4.1.连接字符串的格式

连接字符串提供所要连接的数据库类型,数据库所处服务器,要访问的数据库,数据库访问的安全认证信息等,它的设置标准随着数据源的类型不同而不同:

1)ODBC Driver for Access

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

 

 

 2)ODBC Driver for SQL Server

 

//a.SQL SERVER认证方式
strConnection = _T("Driver={SQL Server};Server=MyServerName;"
        
"Trusted_Connection=no;"
        
"Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;");
//b.混合认证方式
strConnection = _T("Driver={SQL Server};Server=MyServerName;"
     
"Database=myDatabaseName;Uid=;Pwd=;");
//WINDOWS NT认证方式
strConnection = _T("Driver={SQL Server};Server=MyServerName;"
    
"Database=MyDatabaseName;Trusted_Connection=yes;");
//如果SQL SERVER运行在本地计算机上
strConnection = _T("Driver={SQL Server};Server=(local);"
        
"Database=MyDatabaseName;Uid=MyUserName;Pwd=MyPassword;");
//如果计算机上存在两个实例只需在服务名上加“\实例名“
/*

dbnmpntw Win32 Named Pipes dbmssocn Win32 Winsock TCP/IP
dbmsspxn Win32 SPX/IPX
dbmsvinn Win32 Banyan Vines
dbmsrpcn Win32 Multi-Protocol (Windows RPC)
更多信息请参见: 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;");

 

3).Driver for Oracle

strConnect = _T("Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;"
        
"Uid=MyUsername;Pwd=MyPassword;"); 4).ODBC Driver for MySQL

 

 

4)ODBC Driver for MySQL

 

//连接到本数据库:
strConnect = _T("Driver={MySQL ODBC 3.51 Driver};Server=localhost;"
     
"Database=MyDatabase;User=MyUserName;Password=MyPassword;Option=4;");
//连接到远程数据库,需要在SERVER参数指定服务名或IP地址,如果端口不是默认//端口3306,你必面指定。
strConnect = _T("Driver={mySQL ODBC 3.51 Driver};Server=MyRemoteHost;"
     
"Port=3306;Option=4;Database=MyDatabase;Uid=MyUsername;Pwd=MyPassword;");

 

DSN Connection

ODBC DSN


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

 

 

OLE DB Provider

OLE DB Provider for SQL Server

 

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

If you want to connect to a "Named Instance" (SQL Server 2000), you must to specify 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 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;"

 

OLE DB Provider for MySQL

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

 

OLE DB Provider for Oracle(from Microsoft)

 

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

 

 

OLE DB Provider for Oracle (from Oracle)

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

 

 

 

 

 

posted on 2008-09-05 22:27  风荷小筑  阅读(396)  评论(0编辑  收藏  举报