各位大侠,有题请教。在下做了一个远程数据库模块,其中有database,tquery,datasetprovider,其中tquery的requestlive为true;客户端模块有socketconnection,clientdataset,datasource,dbgrid。问题如下:
procedure Tjxgl.SpeedButton3Click(Sender: TObject);
begin
clientdataset1.Close;
clientdataset1.CommandText:='select*from jxgl';
clientdataset1.Active:=true;
clientdataset1.FetchParams;
clientdataset1.Append;
clientdataset1.Params.Parambyname('机型编号').value:=edit2.Text;
clientdataset1.Post;
end;
运行程序总出现clientdataset1:parameters'机型编号'not found;
请求解决,谢谢了!在线等待!!!

解决方案 »

  1.   

    表jxgl中没有‘机型编号’这个字段,检查一下表结构
      

  2.   

    语句里没定参数。
    这样试试:
    clientdataset1.Fieldbyname('机型编号').value:=edit2.Text; 
      

  3.   

    谢谢houbr,但是为什么clientdataset1.Params.Parambyname('机型编号').value:=edit2.Text;
    不行呢?
      

  4.   

    clientdataset1.CommandText:='select*from jxgl';先把这句改改好再说'select * from jxgl'
      

  5.   

    没定义参数
    例如:
    clientdataset1.CommandText:='select * from jxgl where 机型编号 = :A ';
    clientdataset1.Params.Parambyname('A').value:=edit2.Text;
      

  6.   

    非常感谢你们的帮助,huobr你的clientdataset1.CommandText:='select * from jxgl where 机型编号 = :A '; 测试通过,也就是说:没有clientdataset1.CommandText:='select * from jxgl where 机型编号 = :A ';那么就得用clientdataset1.Fieldbyname('机型编号').value:=edit2.Text; 有clientdataset1.CommandText:='select * from jxgl where 机型编号 = :A ';就可以用clientdataset1.Params.Parambyname('A').value:=edit2.Text;那有clientdataset1.CommandText:='select * from jxgl where 机型编号 = :A ';能用clientdataset1.CommandText:='select * from jxgl where 机型编号 = :A ';不呢?