begin
with spzlclientdataset do begin
Close;
// CommandText:='UPDATE zjl.spzl Set spzl.zlnm=:zlnm WHERE spzl.zlbm=''a''';
CommandText:='UPDATE zjl.spzl Set spzl.zlnm=:zlnm WHERE spzl.zlbm=:zlbm';
Params.ParamByName('zlnm').AsString :='abc';
Params.ParamByName('zlbm').AsString :='a';
execute;
end;
end;
procedure TForm5.Button6Click(Sender: TObject);
var
p,q:Tparam;
begin
with spzlclientdataset do begin
spzlclientdataset.Close;
q:=TParam.Create(nil);
q.Name:='zlnm';
q.DataType:=ftString;
params.AddParam(q);
p:=TParam.Create(nil);
p.Name:='zlbm';
p.DataType:=ftString;
params.AddParam(p);
spzlclientdataset.Params.ParamByName('zlnm').AsString :='abc';
spzlclientdataset.Params.ParamByName('zlbm').AsString :='a';
// CommandText:='UPDATE zjl.spzl Set spzl.zlnm=:zlnm WHERE spzl.zlbm=''a''';
CommandText:='UPDATE zjl.spzl Set spzl.zlnm=:zlnm WHERE spzl.zlbm=:zlbm';
spzlclientdataset.execute;
end;
end;
ClientDataSet1.CommandText:='UPDATE table1 Set name=:name WHERE no=:no';
ClientDataSet1.Params.ParamByName('name').Value:=xxxxx;
ClientDataSet1.Params.ParamByName('no').Value:=dxxxxx;
ClientDataSet1.Execute;
直接在clientdataset中写也可以:
clientdataset.commandtext:='update table1 set name='+''''+'20'+''''+' where no=:no'
clientdataset1.params.parambyname('no').value:=edit1.text;
clientdataset1.execute;
我的做法是,在中间层的query或adoquery中写好update语句,带参数,例如:
update table1 set name='20' where no=:no
然后在客户端的clientdataset中添加一个参数,然后在语句中动态赋值:
clientdataset1.params.parambyname('no').asstring:=edit1.text;
clientdataset1.execute;