ADO记录更新(急)

ytcqu 2007-06-18 11:28:57
我写的程序是把先采集的数据导到数据库中,然后进行分析。
首先,我新建了一个名为“FLAG”的字段用来存储每条记录所分析的结果。
其它项则是已采集了的已有数据,但是在分析完后把结果写到字段为“FLAG”那列时出现了问题;具体程序为:
while(!pRec1->adoEOF)
{
pRec1->MoveFirst();
...........//分析当前记录的数据,返回CString flag标记
//已存储了分析的结果
pRec1->PutCollect("FLAG",_variant_t(flag));
//将flag存到字段为”FLAG“的列中
pRec1->Update();
pRec1->MoveNext()
}

但是每次运行到PutCollect时中断,将那段程序改为
_variant_t vColumn,vValue;
vColumn.SetString("FLAG");
vValue.SetString(flag);
pRec1->Update(vColumn,vValue);
同样在Update处中断,求高手指教
...全文
216 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ytcqu 2007-06-20
  • 打赏
  • 举报
回复
怎么就每人顶啊
有哪位大峡指点一下啊
ytcqu 2007-06-19
  • 打赏
  • 举报
回复
下面的更新语句已试过的,至于你说的是否为只读,我正在找,看哪里的参数配置有问题~
ytcqu 2007-06-19
  • 打赏
  • 举报
回复
有哪位大虾如果熟悉这方面,觉得在这上面说不方便的话,可以加我的QQ:157765019
MSN:ytcqu@hotmial.com
真相重于对错 2007-06-19
  • 打赏
  • 举报
回复
考虑是否为只读打开
还有
TRY

pRec1->PutCollect("FLAG",_variant_t(flag));
====>
pRec1->Fields->GetItem("FLAG")->value = (_bstr_t)flag;
...
pRec1->Update();
ytcqu 2007-06-19
  • 打赏
  • 举报
回复
外注名,_ConnectionPtr,_CommandPtr,_RecordsetPtr配置如下,
m_pCon1->ConnectionString ="File Name=TestData.udl";//udl连接
HRESULT hr=m_pCon1->Open("","","",NULL);//连接顺利,且已能进行其它操作

pCom1.CreateInstance(_uuidof(Command));
pCom1->ActiveConnection=m_pCon1;
//搜索指令
pCom1->CommandText="SELECT ....,T_Flag FROM 表1 ";

//创建和打开Recordset1对象执行返回数据命令
pRec1.CreateInstance(_uuidof(Recordset));
pRec1-n>CursorLocatio=adUseServer;
pRec1->Open((IDispatch*)pCom1,vtMissing,adOpenStatic,adLockBatchOptimistic,adCmdUnknown);
//返回S_OK
我在想是不是哪的参数配置错误导致这个问题,更新的代码应该是没问题的,因为我试过好几中方法,基本都是同样的错误!
麻烦哪位大虾帮忙看一下~
ytcqu 2007-06-19
  • 打赏
  • 举报
回复
另外注名,T_Flag 建立的时候是CHAR(8)的,还试过VARCHAR(32),我最多需要存的是三个汉字,应该在长度上是没问题的~
ytcqu 2007-06-19
  • 打赏
  • 举报
回复
没有啊,好象也不可能,检查得很仔细了,因为我如果把flag用addnew操作存到另一个表中用PUTCOLLECT是可行的,但是存到“T_Flag”就是不行,而且,我手动直接在数据库里存了一下,这样的话,权限应该也是不存在问题的~
isoftk 2007-06-19
  • 打赏
  • 举报
回复
那是不是什么地方指针越界了?单步看一下啊.
ytcqu 2007-06-19
  • 打赏
  • 举报
回复
pRec1是_RecordsetPtr指针的,连接啊什么的都没问题,查询啊这些操作都是可以实现的!
还有你说的Update的两个参数问题,好象也不是,我基本都试过了的
isoftk 2007-06-19
  • 打赏
  • 举报
回复
pRec1是个Recordset吧,Update方法好象有两个参数你没填.
UPDATE以前检查数据库是不是连上了,而且搞清楚你是通过数据源指定的还是程序里面连接的.
实在不行,用SQL或存储过程写个更新最简单实用.
czgjwtt 2007-06-19
  • 打赏
  • 举报
回复
用catch把错误提示抓岀来看看。

7,539

社区成员

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

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