怎样在 clientdataset 中 为update 语名动态加载条件参数。
即 where 后面的参数。请举出详细实例。
即 where 后面的参数。请举出详细实例。
解决方案 »
- 请问各位老师位,在DELPHI的TREEVIEW中,取当前节点的父节点的父节点名字,咋取?
- Delphi + ADO + Oracle + ReportBuilder 问题求解?
- 程序关闭后会自动清楚所有的变量吗?
- 通过一个color值求得rgb及色调,饱和度,亮度的值?
- 为什么一个delete from table1 只能删除一张表的记录,不能删除两张表的记录?
- 想针对Memo控件中的文本进行查找替换,如何实现?
- 如何得到某一个数组的个数!
- 多人开发所遇到的问题.
- 救救我-MYSQL与delphi的问题
- 系统的替换?
- 100分相送!用Delphi如何将两个以上的Word文件合成一个文件!
- 写了个检查IP是否合法IP的东东,要的留下Email,写的更好的不要骂我
update table1 set name='20' where no=:no
然后在客户端的clientdataset中添加一个参数,然后在语句中动态赋值:
clientdataset1.params.parambyname('no').asstring:=edit1.text;
clientdataset1.execute;
clientdataset.commandtext:='update table1 set name='+''''+'20'+''''+' where no=:no'
clientdataset1.params.parambyname('no').value:=edit1.text;
clientdataset1.execute;
ClientDataSet1.Params.ParamByName('name').Value:=xxxxx;
ClientDataSet1.Params.ParamByName('no').Value:=dxxxxx;
ClientDataSet1.Execute;
其实我也试过.不过 no 参数就是不起作用,不知是何原因.
我用的是 oracle8.05+delphi5.0
我会试试,不过我还是希望用hiflower(花) 的方法,这样可以灵活些.
一条记录都没有更改呢,但不用 no 参数则可以全部记录都更改.
麻烦你帮我试一试.
一条记录都没有更改呢,但却没有提示出错,
不用 no 参数则可以全部记录都更改.
我要下班了,麻烦你帮我试一试.
明天再见.
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;注意: spzlclientdataset 为 Tclientdataset
spzl 为数据表,属于 zjl 用户所有,所以要在 spzl 前 加上 zjl. 。
如果把 WHERE spzl.zlbm=:zlbm' 换成 WHERE spzl.zlbm=''a'''
即把变量换成定值,则可以更新,不然就没有任何出错提示,也没有更新数据库.
但如果只能是定值,那我的程序又有什么用呢?
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;