C++ Builder“ADOQuery:commandtext does not return a result set”的有关问题

C++ Builder“ADOQuery:commandtext does not return a result set”的问题
各位高手,请问写入读取ACCESS时,会弹出“ADOQuery1:commandtext does not return a result set”的问题;
  目前,程序添加了一个线程用来采集和更新数据库,主界面会实时刷新查询数据库内容,线程和主界面分别用不同的ADOQuery连接同一张表,主界面显示数据库内容是用timer触发的,计时到时,会判断是否有记录更新,如有,则更新,但程序有时会弹出“ADOQuery1:commandtext does not return a result set”,有时不会,请问是否是因为同时读取同一个表冲突引起的,请问如何解决?请各位给个建议或思路,谢谢啦!

代码大致如下:
线程中:
void __fastcall TRecordThread::Execute()
{
  cs->Acquire();

  while(Terminated==false)
  {
  //采集数据
  ……
  //更新数据库
  this->Synchronize(Record);

  if(finished)
  break;

  }//while(Terminated==false)

  cs->Release();  
}

void __fastcall TRecordThread::Record()
{
  SQLlanguage="insert into RecordTable ……";

  ADOQuery2->SQL->Clear();
  ADOQuery2->SQL->Add(SQLlanguage);
  ADOQuery2->ExecSQL();
}

主界面:

void __fastcall TForm_Main::Show()
{

  SQLlanguage="select count(*) as RecordCount from RecordTable where 条件";

  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add(SQLlanguage);

  ADOQuery1->ExecSQL();


  ADOQuery1->Open();

  RecordCount=ADOQuery1->FieldByName("RecordCount")->AsInteger;


  if(RecordCount>BeforeCount)
  {
  SQLlanguage="select * from RecordTable where 条件";

  ADOQuery1->SQL->Clear();
  ADOQuery1->SQL->Add(SQLlanguage);

  ADOQuery1->ExecSQL();

  ADOQuery1->Open();

  ADOQuery1->Last();

  }

}

弹出“ADOQuery1:commandtext does not return a result set”是在执行查询满足条件的记录总数时出现的,请问是什么问题?谢谢啦!

------解决方案--------------------
出错的时候,看一下
ADOQuery1->SQL->Text的值是什么

这个错一般是执行ADOQuery->Open时报错,并且SQL是非select语句。
------解决方案--------------------
另外,
ADOQuery1->ExecSQL();//用于执行非select语句
ADOQuery1->Open();//执行select 语句,查询结果集
不需要同时调用这2个函数
------解决方案--------------------
如果需要返回数据集,就用Open方法,否则用ExecSQL方法。

至于"不正常地定义参数对象,提供了不一致或不完整的信息"的提示,你需要检查每一次构造的SQL语句。建议用OutputDebugString输出SQL语句,以作分析。