在三层的客户端中,这样利用clientdata进行添加数据,删除数据,更新数据,还有查询数据,必须利用SQL语句查询,能不能用这个语句查询:select * from tabel where hello:=h;
fieldbyname(h).value:=edit1.text;
open;
如果不行,那要用什么查询同样的功能.谢谢

解决方案 »

  1.   

    fieldbyname('hello').value:=edit1.text;
      

  2.   

    可以
    在ClientDataSet 的CommandText 中写.
    也可在 应用程序服务期中写.//*************************************************//
    //函数功能:根据编号,经办法院返回指定表(立案数据排期表)的信息
    //输入参数:Bh 编号  Jbfy 经办法院  Bm 表名
    //输出参数:根据编号,经办法院返回指定表(立案数据排期表)的信息
    //设计人:LIYU         设计日期:2003-11-4
    //修改人:               修改日期:
    //************************************************//
    procedure TSsgl_Rdm.Getlasjpq(Bh, Jbfy: Integer; const Bm: WideString);
    begin
      Lasjpq_Query1.Close;
      Lasjpq_Query1.SQL.Clear;
      Lasjpq_Query1.SQL.Add('select * from '+Bm+' where BH=:a and JBFY=:b order by KTQSSJ');
      Lasjpq_Query1.Parameters[0].Value:=Bh;
      Lasjpq_Query1.Parameters[1].Value:=JBFY;
    end;
      

  3.   

    在clientdataset1.commandtext写入sql语句就会出错.
      

  4.   

    可以哟。
    在clientdataset1.commandtext写入sql语句就会出错.主要是把服务端对应的TDataSetProvider的Option属性的PoAllowCommandText要改为True才行哟!
    要不然在里面写语句就会出错了。
      

  5.   

    TDataSetProvider的Option属性的PoAllowCommandText要改为True才行哟!这样做也会出错
      

  6.   

    chenminghong(cmh) 
    在什么地方出错呀?
    select * from tabel where hello:=h
    你这个语句当然得改下了。
    select * From Table Where Hello =:H;
      

  7.   

    还有fieldbyname(h).value:=edit1.text;
    改为Params.ParambyName(H).Value:=Edit1.Text;
      

  8.   

    改为Params.ParamByName('H').Value:=Edit1.Text;