奇怪的Query问题???

mjxllj 2003-07-29 10:13:16
代码:

void __fastcall Tfrm_bd::RadioGroup1Click(TObject *Sender)
{
String sql;
TQuery *Query1;
Query1=new TQuery(this);
Query1->DatabaseName=Form1->path+"\\dbf";
Query1->Close();
Query1->SQL->Clear();
sql="select * from bd where 名称 like '"+ComboBox1->Text+"' and 标线 ="+ComboBox3->Text;
Query1->SQL->Add(sql);
Query1->ExecSQL();
Query1->Open();
if(Query1->RecordCount!=1) return;
Query1->First();
delete Query1;

}

当RadioGroup1Click被连续触发的时候,不到30次就出现以下错误:

"Insufficient memory for this operation"

搞不懂啊,我已经delete Query1,为什么还有提示内存不足,并且数据内的数据有被冲掉的现象,纳闷...


...全文
22 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjxllj 2003-07-29
  • 打赏
  • 举报
回复
Query1->ExecSQL();
Query1->Open();

不能够同时使用;

打开数据集使用open即可;

阿波是对的,给分了
mjxllj 2003-07-29
  • 打赏
  • 举报
回复
if(Query1->RecordCount!=1) return;
这句我做过测试,删了以后还是出错,出错的一句是
Query1->ExecSQL();

Dala 2003-07-29
  • 打赏
  • 举报
回复
if(Query1->RecordCount!=1) return;
//这句一旦执行,后面的delete就不会执行了。
不知该语句意义如何,应该是这里的问题。
starstargao 2003-07-29
  • 打赏
  • 举报
回复
execsql 返回影响行数,不返回结果集
open 返回击结果集
无所谓是不是已经close了
因为你每一次使用的时候已经close了
lanren_me 2003-07-29
  • 打赏
  • 举报
回复
并且在delete之前;请先Close数据集;
lanren_me 2003-07-29
  • 打赏
  • 举报
回复
Query1->ExecSQL();
Query1->Open();

不能够同时使用;

打开数据集使用open即可;

mjxllj 2003-07-29
  • 打赏
  • 举报
回复
不是30次,是57次,现象可重现;

1,178

社区成员

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

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