CRecordset中的使用中的问题,甩100分求解

SnowF4 2004-08-03 01:46:14
代码如下:

CDatabase db;
CDB_LMC db_lmc; //CDB_LMC 类是用wizard生成的绑定数据类
try
{
db.OpenEx(strCon,CDatabase::noOdbcDialog);
db_lmc.m_pDatabase=&db;
db_lmc.Open(CRecordset::snapshot,strsql);
db_lmc.MoveFirst();
db_lmc.CanUpdate();
}
catch( CDBException* e )
{
AfxMessageBox( e->m_strError,MB_ICONEXCLAMATION );
db_lmc.Close();
e->Delete();
}

这段话执行后如果用db_lmc的edit就会报错,调试时发现上面的db_lmc.CanUpdate();的值为0,不知问题出在哪里。

如果把db_lmc.m_pDatabase=&db; 去掉就没有问题了,虽然去掉了这句话后整个程序没影响,但是还想问个明白
...全文
265 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingz 2004-08-07
  • 打赏
  • 举报
回复
我之前也遇到过这个问题,简直和你的一模一样,问了两次,至今也没有能解决,我也是正在找资料时看到你的这个问题。如果我解决了我就发E-MAIL给你,我的EMAIL是:mjbing1124@163.com
如果你解决了也请发一封EMAIL给我好吗?
如果你同意请把你的EMAIL发给我。
让我们一起努力吧!
SnowF4 2004-08-06
  • 打赏
  • 举报
回复
没人知道吗?
SnowF4 2004-08-03
  • 打赏
  • 举报
回复
"你把db定义成它能认识的范围试"什么意思?
我在.H文件中就是这样定义的:
CDatabase db;
CRecordset db_lmc(&db);

编译后提示&符号出错。

laiyiling兄,你的意思是db定义的不对,该怎么定义?
Kudeet 2004-08-03
  • 打赏
  • 举报
回复
不是不认&这个符号吧,应该是不认db对象?你把db定义成它能认识的范围试
SnowF4 2004-08-03
  • 打赏
  • 举报
回复
如果我这样定义这个recordset对象:
CRecordset db_lmc(&db);
这样完全可以
但是如果这句话放在.H文件中定义,编译就通不过,说不认&这个符号
所以我才使用了db_lmc.m_pDatabase=&db;,因为这个要db_lmc是一个public型的,所以CRecordset db_lmc(&db);不能放在cpp中定义。

向大家求助!
SnowF4 2004-08-03
  • 打赏
  • 举报
回复
我把所有的recordset的参数都改成了dynaset,db_lmc.CanUpdate();的值还是0
SnowF4 2004-08-03
  • 打赏
  • 举报
回复
db_lmc.Open(CRecordset::dynaset,strsql);或者
db_lmc.Open(AFX_DB_USE_DEFAULT_TYPE,strsql);这样试试看


都试过了,不行啊


去掉db_lmc.m_pDatabase=&db是没影响,CDB_LMC 类是用wizard生成的绑定数据类
里面有:

CString CDB_LMC::GetDefaultConnect()
{
return _T("ODBC;DSN=CPDA;UID=sa;PWD=");
}

CString CDB_LMC::GetDefaultSQL()
{
return _T("[dbo].[TS_LMC]");
}
pmwin 2004-08-03
  • 打赏
  • 举报
回复
CRecordset::snapshot A static recordset with bi-directional scrolling. The membership and ordering of the records are determined when the recordset is opened; the data values are determined when the records are fetched. Changes made by other users are not visible until the recordset is closed and then reopened.

应该是那个参数得事情吧,不能修改在关闭记录集之前
Kudeet 2004-08-03
  • 打赏
  • 举报
回复
db_lmc.Open(CRecordset::dynaset,strsql);或者
db_lmc.Open(AFX_DB_USE_DEFAULT_TYPE,strsql);这样试试看
pmwin 2004-08-03
  • 打赏
  • 举报
回复
把db_lmc.m_pDatabase=&db去掉没有影响么???没指定数据库都没有影响?
SnowF4 2004-08-03
  • 打赏
  • 举报
回复
刚学vc,还请老鸟们多多指点

4,018

社区成员

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

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