VC+ODBC+Oracle
使用ODBC编程时,使用如下方法。1。 用CDatabase 打开一个连接。CDatabase dBase.OpenEx(..);
2。 用的时从CRecordset继承来得记录集。定义时CMyRecordSet(&dBase)
这样有的表像这样取来的数据是可以编辑的,当我使用的一个表这样取来以后就是不能编辑更新。不知道是什么问题?
   在打开dBase.OpenEx(..)的时候,如果设为加载游标库,则原来不能编辑的表可以编辑了。但好像是在多线程的时候就不行了。多谢回复。:)

解决方案 »

  1.   

    有些维护必须是存在主键约束的!
    oracle下操作要注意!!
      

  2.   

    多谢joachern(程序人生) :)
    我本来也考虑过这个问题。但加了主键还是不行。:(
    oracle下操作要注意些什么那?多谢。
      

  3.   

    我第一次真正地用MFC作商业数据库应用的开发.对这方面有一定地了解,更需要和朋友们交流.
    对于你的问题,就我理解,你如果按照默认方式CDatabase::OpenEx(),应该不会出现这种问题.
    在实际中我用CDatabase::Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = “ODBC;”, BOOL bUseCursorLib = TRUE ).
    不过我想这不是CDatabase::OpenEx()问题了,依我看应该是你所登录的用户权限的问题.你可以去看看.比如,只允许你所登录的用户"SELECT".
      

  4.   

    不对,当你设为加载游标库就可编辑,这就排除了用户权限的问题;那么是你对CRecordset的派生类与数据表的字段相对应的变量的操作有问题.有这个可能,我就遇到过.
    还有建议你写代码时完全加入异常处理,你可以从提示信息中得相关的解决方法.