各位大侠:救命!救命!!!(重新发帖!) 解决马上结帖!(分不够在加!!!)

sydt2000 2003-02-19 12:17:26
删除记录时产生异常:ADOQtemp: Cannot perform this operation on a closed dataset!

编程环境:ORACLE8I,WIN2000,BCB6,数据模块,ADOContion,ADOQUERY控件?

...
AnsiString SqlText="";
RSPDM_DataModule2->ADOQtemp->SQL->Clear();
SqlText+=" DELETE ";
SqlText+=" FROM res_roll_set ";
SqlText+=" WHERE above_working_roll_id = '" + ComboBox21->Text + "'";
SqlText+=" AND lower_working_roll_id = '" + ComboBox22->Text + "'";
RSPDM_DataModule2->ADOQtemp->SQL->Text = SqlText;
RSPDM_DataModule2->ADOQtemp->ExecSQL();
...

删除记录时产生异常:ADOQtemp: Cannot perform this operation on a closed dataset.
(满足条件记录被删除,跳出当前函数,BCB6_ENT_Upd_3.exe补丁也安装了)

望多多帮忙!
...全文
30 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sydt2000 2003-02-19
  • 打赏
  • 举报
回复
To: jishiping(JSP 季世平)
指定RSPDM_DataModule2->ADOQtemp的Connection属性:ADOConnection2

多多帮忙!
jishiping 2003-02-19
  • 打赏
  • 举报
回复
有没有指定RSPDM_DataModule2->ADOQtemp的属性Connection或者ConnectionString啊?
sydt2000 2003-02-19
  • 打赏
  • 举报
回复
To:cuptbluesky(苦行僧)
多谢兄台,两个帖子我都结了!
结帖!爽!
cuptbluesky 2003-02-19
  • 打赏
  • 举报
回复
我用下面的代码测试了一下没有问题呀,可以正常的删除
1、
AnsiString SqlText="";
ADOQuery1->SQL->Clear();
SqlText+=" DELETE ";
SqlText+=" FROM lzw_temp ";
SqlText+=" WHERE device_number = '" + ComboBox1->Text + "'";
//SqlText+=" AND lower_working_roll_id = '" + ComboBox22->Text "'";
ADOQuery1->SQL->Text = SqlText;
ADOQuery1->ExecSQL();
不要在上面的操作之前把数据集Close了,不然就删除不了的
而下面的代码是删除不了数据的
2、
AnsiString SqlText="";
ADOQuery1->Close();//加上此句删除不能进行
ADOQuery1->SQL->Clear();
SqlText+=" DELETE ";
SqlText+=" FROM lzw_temp ";
SqlText+=" WHERE device_number = '" + ComboBox1->Text + "'";
//SqlText+=" AND lower_working_roll_id = '" + ComboBox22->Text "'";
ADOQuery1->SQL->Text = SqlText;
ADOQuery1->ExecSQL();

我在执行1的时候,有一个检索操作把数据集Open了
后没有Close数据集,再执行1就OK了
你看看,是否你在执行删除操作后有一个Close的操作呢?
去掉后再看看

sydt2000 2003-02-19
  • 打赏
  • 举报
回复
没搞定!!!
各位多多帮忙!!!
cscer 2003-02-19
  • 打赏
  • 举报
回复
看看短消息

搞定了吗?
sydt2000 2003-02-19
  • 打赏
  • 举报
回复
To:cscer(石头)
...
RSPDM_DataModule2->ADOQtemp->Close(); //加上
RSPDM_DataModule2->ADOQtemp->SQL->Clear();
...

加上还是此异常:ADOQtemp: Cannot perform this operation on a closed dataset.
cscer 2003-02-19
  • 打赏
  • 举报
回复
RSPDM_DataModule2->ADOQtemp->SQL->Clear();

在这一句前面先关闭ADOQtemp

RSPDM_DataModule2->ADOQtemp->Close();

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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