我用ADO对象访问数据库是,总是在执行SQL语句的时候出现异常(也就是在调用Execute函数的时候),
请问是怎么回事啊???我急啊

解决方案 »

  1.   

    CoInitialize(NULL);
    _ConnectionPtr pcnn(__uuidof(Connection));
    _RecordsetPtr prs(__uuidof(Recordset));
    _CommandPtr cmd(__uuidof(Command));
    pcnn->ConnectionString="DSN=test;Provider=MSDASQL;userID=";
    pcnn->Open("","","",adConnectUnspecified);
    cmd->put_ActiveConnection(_variant_t((IDispatch*)pcnn));
    cmd->CommandText="select * from USER";
    prs=cmd->Execute(NULL,NULL,adCmdText);
    while(!prs->AdoEOF)
    {
    ((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)prs->GetCollect("UNAME"));
    prs->MoveNext(); }
    prs->Close();
    pcnn->Close();
    prs.Release();
    pcnn.Release();

    CoUninitialize();请大家帮忙看看啊~~~到底是什么地方出了问题啊~
      

  2.   

    查看连接数据库串设置是否正确,这是连接SQL Server2000的例子
    _ConnectionPtr m_pConnection;
    _RecordsetPtr m_pRecordset;
    m_pConnection.CreateInstance(_uuidof(Connection)); //初始化Connection指针
    m_pRecordset.CreateInstance(_uuidof(Recordset));//初始化Recordset指针
    CString strSql;
    strSql="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Gate;Data Source=localhost";
    try
    {
    m_pConnection->Open(strSql.AllocSysString(),"","",0); //连接数据库
    }
    catch(_com_error e)
    {
    AfxMessageBox("连接数据库失败");
    return FALSE;
    }