// 初始化—连接数据库
void  ADOConn::OnInitADOConn()
{
// 初始化OLE/COM库环境 
::CoInitialize(NULL);
    HRESULT hr;
try
{
    hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=3;///设置超时时间为3秒

hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb;","","",adModeUnknown);
    
  if(SUCCEEDED(hr))
  {
      printf("Connecting the DataBase SUCCSSED!");
  }
}
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息

        printf("初始化—连接数据库%s/n",(LPTSTR)e.Description());
}
}// 执行查询_RecordsetPtr&
 void ADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
// 连接数据库,如果Connection对象为空,则重新连接数据库
if(m_pConnection==NULL)
OnInitADOConn();
// 创建记录集对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
// 取得表中的记录
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
// 捕捉异常
catch(_com_error e)
{

        printf("执行查询%s/n",(LPTSTR)e.Description());
}
if(m_pRecordset->adoBOF||m_pRecordset->adoEOF)
printf("无数据");
// 返回记录集
// return m_pRecordset;
}
void find()
{
//bool flag=false;
//HRESULT hr;
//CString strSQL="SELECT * FROM convert";
    _RecordsetPtr pRecordset;    ADOConn  adoconn;
//CString str="SELECT * FROM convert";
   // _bstr_t bstrSQL=(LPCTSTR)str;
_bstr_t bstrSQL;
bstrSQL="SELECT * FROM Convert";
    adoconn.GetRecordSet(bstrSQL);
if(pRecordset->adoBOF||pRecordset->adoEOF)
{
printf("读取错误!");
}} m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);运行到这句时候老是出问题First-chance exception in talkback.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.,请高手解决,万分的感谢!!

解决方案 »

  1.   

    连接串有问题吧,应该使用绝对地址。
    --访问本地MDB的ADO连接串:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Test.MDB;User ID=admin;Password=;Jet OLEDB:Database Password=000其中第一个password为Access的用户admin的密码,第二个为Access数据库的密码
    如果未设置数据库密码,可省略此项。
    --ADO连接串(访问网络MDB):Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\服务器名或IP\共享目录\Test.MDB;User ID=admin;Password=;Jet OLEDB:Database Password=;其中第一个password为Access的用户admin的密码,第二个为Access数据库的密码
    如果未设置密码,可省略相关项。