ODBC数据库添加记录问题

xbgs 2004-03-23 10:10:03
我用的SQL SERVER2000数据库,建立了一个数据库,有3个表,我都连接到了。

在CXXVIEW::ONINITIAL()中打开数据库:
m_pSet=&GetDocument->Creodset;

m_pSet->open(afx_defaltu_ ,
NULL,
Crecordset::canbookmarks|Crecordset::none);

然后一句是。。。oninitial();

其中第二句是我加的打开数据库的语句。

然后再创建一个函数 onadd()用来给数据库添加记录:

001 :if(!m_pSet->IsOpen()) return;
002 :if(!m_pSet->CanUpdate()) return;
003 :if(!m_pSet->CanBookMar()) return;

m_pSet->AddNew();
写字段到数据库;
m_pSet->update();
m_pSet_>Query();

我的问题是:当我没有在ONINITIAL()函数中加 m_pSet->open()这句时,001行和002行和003行不能通过, 在m_pSet->open()函数中的第三个参数加上Crecordset::canbookmarks参数时,003行可以通过了, 但是不管怎么修改m_pSet->open()参数,002行就是不能通过,所以m_pSet->AddNew()也不能通过,这说明数据库是只读的,但是在m_pSet->open()中已经设置为可以添加新记录的了,为什么还是通不过,程序执行时就提示: 记录集为只读!



...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xbgs 2004-04-08
  • 打赏
  • 举报
回复
这个问题我自己解决了,主要是数据集要有打开的函数m_pSet->Open(CRecordset::dynamic, "SELECT * FROM T1");

而且我只所以出现上面的问题主要是因为我用一个数据集类包含了3个表,后来我改成每个数据集对应一个表问题就解决了!
xbgs 2004-03-24
  • 打赏
  • 举报
回复
还是不行 ,就是不能增加 ,怎么回事啊?
DebugXP 2004-03-24
  • 打赏
  • 举报
回复
m_pSet->Open(CRecordset::dynamic, "SELECT * FROM T1");



vvvvvvv 2004-03-23
  • 打赏
  • 举报
回复
不加参数。。
101monster 2004-03-23
  • 打赏
  • 举报
回复
呵呵,UP!

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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