ADO访问数据库方法(文章写得较早,有些没有注意编码的问题.)

导入文件:
#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;
   }
/**************************************************************************************/

你可能感兴趣的:(ADO访问数据库方法(文章写得较早,有些没有注意编码的问题.))