CString Sql2;
Sql2.Format("select * from Doc_SE_Idf");
pRst=pConn->Execute(_bstr_t(Sql2),NULL,adCmdText);
while(1)
{
string str_id=(_bstr_t)pRst->GetCollect("Id");
CString s;
s=(LPCTSTR)(_bstr_t)pRst->GetCollect("Id");
s.TrimLeft();
s.TrimRight();
CString s1;
s1.Format("%s",id.c_str());
if(s.Compare(s1)==0) //相同
{
cout<<444<<endl;
CString str_sum;
str_sum=(LPCSTR)(_bstr_t)pRst->GetCollect("Sum");
CString Sql2;
int a=atoi(str_sum);
int b=atoi(num.c_str());
int c=a+b;
cout<<777<<endl;
Sql2.Format("update Doc_SE_Idf set Sum='%d' where Id='%s' ",c,id.c_str());//????????????
pConn->Execute(_bstr_t(Sql2),NULL,adCmdText);
cout<<333<<endl;
break;
}
else
{
pRst->MoveNext();
}
if (pRst->rsEOF) //是否到底
{
cout<<555<<endl;
cout<<word<<endl;
CString Sql1;
Sql1.Format("insert into Doc_SE_Idf(Id,Word,Sum) values('%s','%s','%s')",id.c_str(),word.c_str(),num.c_str());
pConn->Execute(_bstr_t(Sql1),NULL,adCmdText);
break;
}
}
pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
CoUninitialize();
出现的问题特别奇怪,上面的函数中涉及到表Doc_SE_Idf,当该表中的数据达到3000行左右时(奇怪的是有时是3092行,有时3105行3119,3093,3096 ,总之就是3000行左右)用问号标示出的语句就会报错,而假如人为的把该表中的数据删除一些如2000行,再继续执行则没有问题,但当记录再次到达3000行左右时,问题依旧,百思不得其解!!本表中大约需要存放40000行左右数据。上述代码只是部分代码,但主要的功能语句都在,请高人指点,感激不尽!!!!
报的错误是:Debug Error!
Program :路径。exe
abnormal progran termination 不会发图,大家将就看吧!
解决方案 »
- 关于界面换肤
- 将字符串存到数组中
- 怎么样得到一个CWnd派生类的类型啊?
- MFC五大批判
- 想请问如果何实现获得某个指定网页(IE窗口)里的编辑框的句柄!
- ========100分求救关于ado连接远程数据库问题==========
- 还有一个问题,很着急!谁能帮我重分酬谢!题目不难!
- (弱```弱)请问,如何打开PDF格式的文件?
- 急死我了,memfile 需要一个正确的mpeg1头,我去哪里找? 帮帮我啊
- 为什么在InstallShield6.x中导入注册表文件时,安装后只有部分被写了。急急急
- 程序运行时,是全部加载到内存还是根据需要有选择加载?
- 以暂停方式新创建的进程,能根据进程句柄获得其可执行文件路径吗?
你的 sum 和 id 都是什么数据类型?
sum 一般来说都是整数或浮点数,如果这样的话,那 %d 前后的单引号不需要。
捕获的错误为:超时已过期
现在已将SQL SERVER 中工具-》选项-》高级-》登陆超时和查询超时设为6000,
将SQL Server组-》(local)(Window NT)右键"属性"-》连接->查询超时设定为“0”
但问题没有解决,看过有些帖子说把ADO 组件的CommandTimeOut属性改为0,是在程序里该吗?
在程序里加入语句“pConn->CommandTimeout=0;”后却出现另一问题:等待缓冲区闩锁时发生超时
类型4,用于页(1:559),数据库ID7
我还安装了sql2Ksp4的补丁也没解决问题。
哪位高人救命啊!!!