大家好,我写了一个程序,可以实现用VC+ado+SQL Server、Access、oracle访问数据库,
读写数据库的代码都是一样的,只是连接数据库的时候根据数据库的不同用不同的代码连,
操作SQL Server和Access时都没有问题,但是在操作oracle时,可以读出数据,但是插入数据的时候出错了,
// 写入各字段值
m_pRecordset2->AddNew();
m_pRecordset2->PutCollect( "owner_id", _variant_t(m_OwnerId) );
m_pRecordset2->Update();跟踪发现在m_pRecordset2->AddNew();的时候出错了,不知道是什么原因?请大家帮帮忙,谢谢!其中m_pRecordset2是:
m_pRecordset2->Open("SELECT * FROM scott.carowner_info",               
m_pConnection.GetInterfacePtr(),     
adOpenDynamic,
adLockOptimistic,
adCmdText);
连数据库的时候是:
m_pConnection->
Open("Provider=MSDAORA.1;Data Source=MYORACLE;","system","manager",adModeUnknown);连上数据库后我从m_pRecordset2中读取数据是成功了的,
但是往里面插入数据m_pRecordset2->AddNew();却出错了,?
 

解决方案 »

  1.   

    各个字段都赋值了,
    并且"system","manager",有写入表的权限,我用SQL Plus试过了,
      

  2.   

    你可以加一个异常try{}catch(_com_error &e){AfxMessageBox(e.Description()).应该可以看到你出错是为什么。
    帮你顶一下, 前面SELECT * FROM MYTABLE WHERE 0<>0 ,然后AddNew()的时候可以, 但是不可以Update();