昨天由于写个小程序用access2007数据库,郁闷了半天 怎么都连不上数据库,最后发现原来2007和2000所用的驱动不同 ,因此将ado连接数据库的语句小总结了下,欢迎各位补充
ado连接access数据库
1.首先添加
#import "c:/program files/common files/system/ado/msado15.dll" /
no_namespace / rename ("EOF", "adoEOF")
2.初始化com库
AfxOleInit(); //关闭时自动关闭
CoInitialize(NULL); 对应 CoUnInitialize();
3.打开数据库
_ConnectionPtr m_pConnection;
m_pConnection.CreateInstance(__uuidof(Connection)); //也可以用m_pConnection.CreateInstance("ADODB.Connection");
try
{
// 打开本地Access库Demo.mdb 不同版本的access的驱动也不相同
// access97的驱动为 Provider=Microsoft.Jet.OLEDB.3.51;
// access2000和access2003的驱动为Provider=Microsoft.Jet.OLEDB.4.0
// access2007的驱动为 Provider=Microsoft.ACE.OLEDB.12.0
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库Demo.mdb是否在当前路径下!");
return FALSE;
}
ado连接sqlserver数据库
//sqlserver2000
//身份验证模式为:"sql server和windows"
Provider=SQLOLEDB.1;Persist Security Info=True;User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名
//身份验证模式为:"仅windows"
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=SQL服务器名
//sqlserver2005连接语句
"provider='SQLOledb';Server=127.0.0.1;Database=aspnetdb;UID=sa;PWD=试试;"
oracle连接数据库
connStr="Provider=OraOLEDB.Oracle;User ID=njcrm;Password=crmdbo;Data Source=192.168.0.24;";
m_pConnection->Open(_bstr_t(connStr),(_bstr_t)_T(""),(_bstr_t)_T(""),adConnectUnspecified);