导入文件:
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
初始化:
if(!AfxOleInit())
{
AfxMessageBox("初始化COM库失败!");
return FALSE;
}
连接字段:
////////////////////////////////////////////////////////////////////////////////////////
连接SQL数据库用下面的字段:
"Provider=SQLOLEDB;Data Source=serverName;Initial Catalog=databaseName;
User ID=userName;Password=userPassword;"
连接ACCESS数据库用下面的字段:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databasePath;
User ID=userName;Password=userPassword;"
DSN连接字段:
"Data Source=DSN;UID=;PWD=;"
**********************************************
*
用UDL文件可以更快的达到配置的效果^_^ *
*
连接字段设置为: *
"File Name="+GetExePath()+"\\connect.udl" *
*
**********************************************
CString GetExePath()
{
// 得到模块全路径
char exeFullPath[200];
CString strPath;
GetModuleFileName(NULL, exeFullPath, 200);
strPath = CString(exeFullPath);
// 转换为配置文件全路径
strPath = strPath.Left(strPath.ReverseFind('\\'));
return strPath;
}
CString path=GetExePath();
path="File Name="+path+"\\connect.udl";
LPCSTR ConStr=path;
////////////////////////////////////////////////////////////////////////////////////////
创建智能指针:
_ConnectionPtr Conn;
_RecordsetPtr Rs;
/**************************************************************************************/
try
{
if (SUCCEEDED(Conn.CreateInstance("ADODB.Connection")))
{
LPCSTR ConStr="连接字段"; //如果使用UDL来连接的话:
//"File Name="+GetExePath()+"\\Datasource.udl"
//CString Path="File Name="+GetExePath()+"\\Datasource.udl"
//LPCSTR ConStr=Path
Conn->ConnectionTimeout=5;
Conn->Open(ConStr,"","",adModeUnknown);
//或者
// Conn->ConnectionString=ConStr;
// Conn->Open("","","",adModeUnknown);
}
}
catch(_com_error e)
{
// 显示错误信息
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s", e.ErrorMessage());
AfxMessageBox(errormessage);
return;
}
/**************************************************************************************/
try
{
LPCSTR SqlStr="SQL字段";
Rs.CreateInstance("ADODB.Recordset");
Rs->Open(_bstr_t(SqlStr),
_variant_t((IDispatch *)Conn,true),
adOpenStatic,
adLockOptimistic,
adCmdText);
}
catch(_com_error e)
{
// 显示错误信息
CString errormessage;
errormessage.Format("打开记录集失败!\r\n错误信息:%s", e.ErrorMessage());
AfxMessageBox(errormessage);
return;
}
/**************************************************************************************/