数据库的一个错误,谁帮看一下

tiara 2001-11-26 02:36:35
错误定位到如下代码
if (pvBind != pInfo->m_pvBindAddress)
{
TRACE1("Error: CString buffer (column %u) address has changed!\n",nField);
ASSERT(FALSE);
}
这是在往数据库里面写字符串时(text)发生的。
SQL server 2k (desktop)
...全文
103 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiara 2001-11-27
  • 打赏
  • 举报
回复
我faint了,
给分都不成,这个东东是个什么系统
我都给了快一个小时了,我受不了了!!!!!!!!!!!!!
tiara 2001-11-27
  • 打赏
  • 举报
回复
本人已经知道怎么回事了,原因是
RFX_Text(pFX, _T("[HtmlSrc]"), m_HtmlSrc,80000);
这句话的最后一个参数 省却值是 255 ,
如果要加入数据库的字符串长于255 , 就会 非法操作 ,
没有 Exception , 所以应该显示的指定一个较大的值。
谢谢大家帮忙,散分!
DeadWolf 2001-11-26
  • 打赏
  • 举报
回复
e->m_strError 报的错是什么

//如果是varchar类型就可以用下面这句
根据你这句猜测的话
tg->Html.Left(70) 改成tg->Html.Left(30)
可能可以存进 你试试
如果可以 相信会是乱码
tiara 2001-11-26
  • 打赏
  • 举报
回复
前面是往数据库里面写一个CString,数据库对应的域是text,在存储(update)的时候就出现上述问题。

if( !tg->Html.IsEmpty() ) //如果Html不是空,则存储
{
try
{
AddNew();
//如果是varchar类型就可以用下面这句
//m_HtmlSrc = tg->Html.Left(70) ;
m_HtmlSrc = tg->Html ;
m_URLNo = tg->URLNo ;
Update();
}catch(CDBException* e)
{
AfxMessageBox(e->m_strError + "\n不能加入HTML信息" , MB_OK);
e->Delete();
return ERR ;
}
}


不是每次都报错的,多数情况下是会通过的。
//现在我猜测是:我读进来的Html字符串有问题,导致不能将cache中的数据存入数据库。
/**********************
* *
* 请高人指点 *
* *
***********************/
DeadWolf 2001-11-26
  • 打赏
  • 举报
回复
错误应该在你前面的代码发生
这里只是报告了有错误发生

麻烦你把前面的代码一并提供
tiara 2001-11-26
  • 打赏
  • 举报
回复
没有局部变量呀,我查了好几遍的呀!
真的没有呀!
真的!
哎呀,真是没办法了,快·#¥%·#¥%……·#……¥%
tiara 2001-11-26
  • 打赏
  • 举报
回复
re
zzh 2001-11-26
  • 打赏
  • 举报
回复
不要使用CString来进行更新,通过一个生成的字符串指针进行操作,把这块内存指针中的内容显示出来,进行判断,出现这种情况的原因主要是因为指针越界了,在CString中,是系统自动管理内存的,当退出作用范围的时候,相应的内存就会修改,你检查一下有没使用局部变量传递值。
mjs2000 2001-11-26
  • 打赏
  • 举报
回复
指针的引用是不是有问题
tiara 2001-11-26
  • 打赏
  • 举报
回复
主要是不报错,直接就 非法操作了!!!!

4,011

社区成员

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

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