为什么会这样????????????

Wanix 2003-08-21 11:18:51
我用的是ACCESS数据库,在VC中用CRecordset类对其进行操作。但当数据库为空时,执行添加操作m_Set.AddNew(),(注:m_Set是CRecordset的一个对象)提示某某指令引用某某内存,该内存为只读,但实际上数据已经添加上去,不知是何故???
另外在删除数据时,出现“更新或删除的企图失败了”的提示,但再打开时,该记录已经删除,不知又是何故????
都说ACCESS不稳定,难道是此原因??还请高手指点!多谢!
...全文
27 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsjxyh 2003-08-22
  • 打赏
  • 举报
回复
可以将你的代码调试一下,根据调试信息判断到底哪里出问题。实在不行的话,可以联系jishaojie@eyou.com
Wanix 2003-08-21
  • 打赏
  • 举报
回复
部分源代码:(删除)
CMyRecordset m_Set;
try
{
if(!m_Set.IsOpen())
m_Set.Open();
if(m_Set.IsEOF())
{
MessageBox("Êý¾Ý¿âΪ¿Õ£¡","Ìáʾ");
return;
}
m_Set.MoveFirst();
m_Set.Delete();
m_Set.Update();
UpdateData();
}
catch(CDBException* e)
{
AfxMessageBox(e->m_strError);
e->Delete();
}
(添加)
void CMyDlg::AppendRecord(CString User,CString Event,CTime time)
{
try
{
if(!m_Set.IsOpen())
m_Set.Open();
}
catch(CDBException* e)
{
AfxMessageBox(e->m_strError);
e->Delete();
}
try
{
m_Set.AddNew();
m_Set.m_User=User;
m_Set.m_Event=Event;
m_Set.m_Time=time;
m_Set.Update();
}
catch(CDBException* e)
{
AfxMessageBox(e->m_strError);
e->Delete();
}
}
请指点!
Wanix 2003-08-21
  • 打赏
  • 举报
回复
请问如何初始化?
jsjxyh 2003-08-21
  • 打赏
  • 举报
回复
这种问题的出现主要有以下原因:
1:数据填加时,有些变量未初始化
2:ACCESS数据库表中有的字段有属性约束等。
具体情况可根据调试、跟踪的现场值判断。
Wanix 2003-08-21
  • 打赏
  • 举报
回复
opentuxedo(开缝的燕尾服)
什么意思?
opentuxedo 2003-08-21
  • 打赏
  • 举报
回复
类型对吗?

4,011

社区成员

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

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