我在arx程序设计中 
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
m_pConnection.CreateInstance(_uuidof(Connection)); 
m_pRecordset.CreateInstance(_uuidof(Recordset));
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\pm\\db1.mdb","","",adModeUnknown);
m_pRecordset->Open("select * from 表1",m_pConnection.GetInterfacePtr(),adOpenKeyset,adLockReadOnly,adCmdText);
//在m_pRecordset->open时出错(IDispatch* error 3149)
哪不对?
谢谢

解决方案 »

  1.   

    你没有调用初始化函数
    #import "E:\Program Files\Common Files\System\ado\msado15.dll" \
        no_namespace rename("EOF", "EndOfFile")
    ……
    ::CoInitialize(NULL)_ConnectionPtr m_pConnection;
    _RecordsetPtr m_pRecordset;
    m_pConnection.CreateInstance(_uuidof(Connection)); 
    m_pRecordset.CreateInstance(_uuidof(Recordset));
    m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\pm\\db1.mdb","","",adModeUnknown);
    m_pRecordset->Open(("select * from 表1",_variant_t((IDispatch *)pConnection,true),adOpenKeyset,
                adLockOptimistic,adCmdText);……
    CoUninitialize( ); 
    祝你好运