在表db1中有一个字段为Memo型,现在查询Memo里面的字符串,用如下代码。begin 
 if Edit2.Text<> '' then
  begin
    Dm:='%'+Edit2.Text+'%';
    DataModule2.ClientDataSet1.Close;
    DataModule2.ClientDataSet1.CommandText:=format('select * from db1 where substance like ''%s''',[Dm]);
    DataModule2.ClientDataSet1.Open;
  end;
end但结果提示:CommandText changes are not allowed。
请各位大虾提示!!

解决方案 »

  1.   

    设置你的provider的option里倒数第2个allowcommandtext委true
      

  2.   

    谢谢楼上,可惜又出新问题了:
    运行时提示:
    ADOQuery1 can not perform this operation on a open dataset
    请指教。
      

  3.   

    》ADOQuery1 can not perform this operation on a open dataset
    ADOQuery1在设计时不要打开,运行时由:
    DataModule2.ClientDataSet1.Open;
    这样子打开。