我今天第一次用ADO,遇到一个问题,下面代码到最后一句出现运行时错误,异常退出.搞半天没搞懂,求助啊~~CXxx::Instance
{
        .....................        //初始化
        CoInitialize(NULL);        _ConnectionPtr m_pConnect;
        _RecordsetPtr m_pRecordset;        recodset.CreateInstance(_uuidof(Recordset));
m_pConnect.CreateInstance(_uuidof(Connection)); //连接数据库
        m_pConnect->Open("Provider=MSDAORA.1;User ID=system;Data Source=dytdd;Persist Security Info=False",
"xxx","xxx",adModeUnknown);

//添加一条记录
        _variant_t RecordsAffected;
CString strSql;
CString name = "name", psw = "password";
strSql.Format("INSERT INTO xxx.USER Values('%s','%s')",name,psw);
m_pConnect->Execute((_bstr_t)strSql,RecordsAffected,adCmdText);// runtime error !        ...........................
}

解决方案 »

  1.   


    m_pConnect-> Execute((_bstr_t)strSql,NULL,adCmdText);
      

  2.   

    用过了 ,还是报一样的错~~~  最开始就是用的NULL....
      

  3.   

    User   ID=system
    strSql.Format("INSERT   INTO   xxx.USER   Values('%s','%s')",name,psw); 
    矛盾了。
      

  4.   

    运行时错误有什么提示没?
    是oracle错误还是VC的。
      

  5.   

    (_uuidof(Recordset)); 
    两个横线
      

  6.   

    m_pConnect->Execute((_bstr_t)strSql,&RecordsAffected,adCmdText);
      

  7.   

    m_pConnect
    检查一下是不是为空(即没有创建成功)
      

  8.   

    CString sqlStr = "INSERT INTO Admin (Name, Code)VALUES ('"+m_sName;
    sqlStr += "', '"+ m_sCode +"')";
    CString str = "select * from admin";

    m_pConnection.CreateInstance(__uuidof(Connection));

    try                 
    {
    m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyProject.mdb", "", "", adModeUnknown);
    }
    catch(_com_error e)
    {
    AfxMessageBox("Read Data Test.mdb Error!");
    return;
    }  

    _RecordsetPtr pRecordset;
    pRecordset.CreateInstance(__uuidof(Recordset));
    try
    {
    pRecordset->Open(_bstr_t(sqlStr),             
    m_pConnection.GetInterfacePtr(),
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);
    }
    catch(_com_error *e)
    {
    AfxMessageBox(e->ErrorMessage());
    }  
    // pRecordset->Close();
    pRecordset.Release();
    pRecordset = NULL;
    m_pConnection->Close();
    }
    Insert data to DB.
    All right!
      

  9.   

    这一句SQL不对吧?
    strSql.Format("INSERT   INTO   xxx.USER   Values('%s','%s')",name,psw); 试试这样:
    strSql.Format("INSERT   INTO   USER,PASSWORD   VALUES('%s','%s')",name,psw); 
    其中USER,PASSWORD是数据库中代表用户和密码的字段名称。