很奇怪的问题,关于数据库,大家帮忙

Jeffrey712 2002-03-12 11:41:57
我在用wizard生成一个CRecordset的子类后,
访问数据库,有以下一段代码
bodyset.AddNew();
bodyset.m_BackLink=postset.m_RecordID;
bodyset.m_Content=tmpStr;
bodyset.m_TableName=SiteID;

bodyset.Update();
bodyset.Close();
大部分时候都是正常的,但有时候执行到bodyset.Update();时会出现Assertion failed
跟踪调试进了MFC\SRC\DBRFX.CPP,有下面这段
#ifdef _DEBUG
// Buffer address must not change - ODBC's SQLBindCol depends upon this
void* pvBind;

#ifdef _UNICODE
pvBind = pFX->m_prs->m_pvFieldProxy[nField-1];
#else // !_UNICODE
pvBind = value.GetBuffer(0);
value.ReleaseBuffer();
#endif

if (pvBind != pInfo->m_pvBindAddress)
{
TRACE1("Error: CString buffer (column %u) address has changed!\n",
nField);
ASSERT(FALSE);
这个ASSERT FAILED
}
#endif // _DEBUG

谁能告诉我这是为什么?100分送上,谢谢!
...全文
55 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmx7707 2002-03-12
  • 打赏
  • 举报
回复
我也遇到过这样的情况,是你对数据库的操作的问题。
仔细找找,或者加上这个。有的时候不需要显式调用update的
if (m_pSet->CanUpdate())
{
m_pSet->Edit();
m_pSet->Update();
wsa_socket 2002-03-12
  • 打赏
  • 举报
回复
agree with panda_w(好想睡啊!
mjk 2002-03-12
  • 打赏
  • 举报
回复
现在用ado
Jeffrey712 2002-03-12
  • 打赏
  • 举报
回复
好像不是这个原因,而且下面的语句也会出错
postset.Open();
postset.MoveLast();
postset.Edit();
postset.m_BodyID=bodyset.m_RecordID;
postset.Update();//Update BodyID
执行Update时抛出异常没有一行被更新,但事实上m_BodyID是被改了
而且这个问题不是每次都出现。
为什么呢?大家请帮忙!
panda_w 2002-03-12
  • 打赏
  • 举报
回复
AddNew之后Close
然后再 Open()
发一个功能比较全面的考试系统本系统开发环境是VS2005+SQL2000,是我在实习单位时独立做的一个项目,三层架构,参考了多个考试系统而开发的,题型有单选题、多选题、判断题、填空题和问答题(或者也可以说是简答题)。 说一下我的开发体会: 1、从网上看到的试卷的题型几乎是没有问答题的,前不久我下载了一个,有简答题,但奇怪的是后台没有那个评阅试卷,直接在前台自动评卷的,这就有问题了,因为如果是填空题的话,就可以比较用户输入的几个字是否和数据库中的答案相同,但简答题的回答一般都有几十个字吧,用户不可能每个字都和数据库中的答案相同,这虽然可以比较,但是和现实是不符合的。所以我在后台增加了“试卷评阅”这个功能,它可以把用户在前台页面的回答保存下来,然后在后台把用户选择选择哪道题,输入什么字都能一模一样的显示出来,这个是我认为最大的优点,在目前我见到的考试系统中还没有见到过。在“试卷评阅”中,除了“问答题”是手动输入的外,其它题型都是系统自动判分的。 2、加入了权限管理,系统分为三种用户,管理员、教师和学生,管理员可以设定教师有哪些权限。 3、“在用户管理”这一模块中,还增加了一个“重置密码”的功能,如果用户忘记密码了,管理员则可以把用户的密码重置为6位的随机数字。 4、系统的登陆只用了一个界面,不用单选按钮就可以实现三种用户的智能登陆,会自动根据身份跳转到相应的页面。另外还用了Cookie实现了记住用户名。 5、学生登陆成功后,可以修改个人密码,查看考试记录,也可以选择考试。 6、界面美观方面,我也弄了很久,虽然不敢说很美,但绝对是不错的。 7、基本上我所学的东西都在这里了,比如密码MD5加密;GridView中CheckBox全选删除、只允许选择一个;GridView鼠标移动行就变色;GridView列字数过多时省略后面的字;删除时弹出是否确定对话框;GridView模板中获取用户的输入;多条件搜索的查询;权限管理。。。。。希望对初学.NET的朋友有帮助。 7、因为实习完了,面临找工作了,所以系统没什么时间去完善,如果各位使用中有问题的话,可以联系我,只有我有时间,我一定尽我所能去帮忙。邮箱:lichuan3@126.com
发一个我开发的功能全面的考试系统 本系统开发环境是VS2005+SQL2000,是我在实习单位时独立做的一个项目,三层架构,参考了多个考试系统而开发的,题型有单选题、多选题、判断题、填空题和问答题(或者也可以说是简答题)。 说一下我的开发体会: 1、从网上看到的试卷的题型几乎是没有问答题的,前不久我下载了一个,有简答题,但奇怪的是后台没有那个评阅试卷,直接在前台自动评卷的,这就有问题了,因为如果是填空题的话,就可以比较用户输入的几个字是否和数据库中的答案相同,但简答题的回答一般都有几十个字吧,用户不可能每个字都和数据库中的答案相同,这虽然可以比较,但是和现实是不符合的。所以我在后台增加了“试卷评阅”这个功能,它可以把用户在前台页面的回答保存下来,然后在后台把用户选择选择哪道题,输入什么字都能一模一样的显示出来,这个是我认为最大的优点,在目前我见到的考试系统中还没有见到过。在“试卷评阅”中,除了“问答题”是手动输入的外,其它题型都是系统自动判分的。 2、加入了权限管理,系统分为三种用户,管理员、教师和学生,管理员可以设定教师有哪些权限。 3、“在用户管理”这一模块中,还增加了一个“重置密码”的功能,如果用户忘记密码了,管理员则可以把用户的密码重置为6位的随机数字。 4、系统的登陆只用了一个界面,不用单选按钮就可以实现三种用户的智能登陆,会自动根据身份跳转到相应的页面。另外还用了Cookie实现了记住用户名。 5、学生登陆成功后,可以修改个人密码,查看考试记录,也可以选择考试。 6、界面美观方面,我也弄了很久,虽然不敢说很美,但绝对是不错的。 7、基本上我所学的东西都在这里了,比如密码MD5加密;GridView中CheckBox全选删除、只允许选择一个;GridView鼠标移动行就变色;GridView列字数过多时省略后面的字;删除时弹出是否确定对话框;GridView模板中获取用户的输入;多条件搜索的查询;权限管理。。。。。希望对初学.NET的朋友有帮助。 7、因为实习完了,面临找工作了,所以系统没什么时间去完善,如果各位使用中有问题的话,可以联系我,只有我有时间,我一定尽我所能去帮忙。邮箱:lichuan3@126.com 后台模块包括: 个人信息管理 修改密码 部门信息管理 部门管理 用户信息管理 用户管理 权限设置 试卷制定维护 试卷制定(随机出题、人工出题) 试卷维护 用户试卷管理 试卷评阅 用户成绩 试题类别管理 单选题维护 多选题维护 判断题维护 填空题维护 问答题

1,660

社区成员

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

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