ADO
1.添加ADO类型库文件
no_namespace rename("EOF", "EndOfFile")
程序在编译过程中,VC++会读出msado15.dll中的类型库信息,自动产生两个该类型库的头文件和实现文件msado15.tlh和msado15.tli(在您的Debug或Release目录下)。在这两个文件里定义了ADO的所有对象和方法,以及一些枚举型的常量等。我们的程序只要直接调用这些方法就行了 。
还可以在VC编译器的系统路径中进行添加:在“工具”->“选项”中弹出选项对话框,如下图所示:
则可以这样导入ADO类型库文件
不使用no_namespace属性
2.初始化COM对象
如果是控制台程序,则如下进行初始化:
CoUninitialize();
如果是基于MFC的程序,则可以如下进行初始化:
3.声明和实例化一个连接对象
_ConnectionPtr pConnection(__uuidof(Connection));
_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.连接字符串的格式
连接字符串提供所要连接的数据库类型,数据库所处服务器,要访问的数据库,数据库访问的安全认证信息等,它的设置标准随着数据源的类型不同而不同:
"Dbq=c:\\DatabasePath\\dbaccess.mdb;Uid=;Pwd=;");
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;");
"Uid=MyUsername;Pwd=MyPassword;"); 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;");
OLE DB Provider for SQL Server
"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:
"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:
"Initial Catalog=myDatabaseName;"
"User ID=myUsername;Password=myPassword;");
To connect to SQL Server running on a remote computer (via an IP address):
"Data Source=130.120.110.001,1433;"
"Initial Catalog=MyDatabaseName;User ID=MyUsername;"
OLE DB Provider for Oracle(from Microsoft)
"Password=myPassword;");
OLE DB Provider for Oracle (from Oracle)
"User Id=myUsername;Password=myPassword;");