有关Dao的一初级问题

sunqi 2000-02-10 01:46:00
有一vfp数据库,在odbc配置dsn=data,
执行如下程序,到rs.Edit()处出错

CDaoDatabase m_db;
m_db.Open("",FALSE,FALSE,_T("ODBC;DSN=data"));
// m_db.Open("c:\\test.mdb",FALSE,FALSE);
CDaoTableDef m_table(&m_db);
m_table.Open("table1");
CDaoRecordset rs(&m_db);
rs.Open(&m_table,dbOpenDynaset);
if(rs.FindFirst("number=123"))
{
rs.Edit();
rs.SetFieldValue("name","qqqq");
rs.Update();
}
rs.Close();
m_table.Close();
m_db.Close();

显示消息框 "can't update. database or object is read only"
而我建立一access数据库,将程序略作修改,可以通过(见我注释掉的语句)
但为什么通过odbc不行呢?
...全文
113 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunqi 2000-02-12
  • 打赏
  • 举报
回复
那样的话更不行了,参数TRUE表示以只读方式打开,而dbDenyWrite为禁止写,我试过,在
rs.Open(("name","qqqq",dbDenyWrite)时就出错了,会不会是odbc的原因呢?但如果我
用cdatabase和crecordset打开就没有该问题.
lov 2000-02-10
  • 打赏
  • 举报
回复
消息是:数据库的打开方式是只读的,不能更新数据
m_db.Open("",FALSE,FALSE,_T("ODBC;DSN=data"));改为m_db.Open("",TRUE,TRUE,_T("ODBC;DSN=data"));不行的话就把rs.Open函数应该有三个参数加上dbDenyWrite就OK了!

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧