DCOM中clientdataset的commandtext如何写?(50分)

  • 主题发起人 主题发起人 dana
  • 开始时间 开始时间
D

dana

Unregistered / Unconfirmed
GUEST, unregistred user!
commandtext类似sql的语法,可要是带参数如何写?
如:
SQL.ADD('select * from name');
SQL.ADD('and(zdlx=:P_n)');
PARAMBYNAME('P_n').ASSTRING:='dana';
OPEN;
 
sql:='select * from name where Field="xxx"';
Clientdataset.commandtext:=sql;
....
 
你这样写是条件,可是我要的是当需要传递参数时,如何写。
SQL.ADD('select * from name');
SQL.ADD('and(zdlx=:P_n)');
PARAMBYNAME('P_n').ASSTRING:='dana'
不有就是
SQL.ADD('delete * from name');
execsql;
如何写.
 
SQL.ADD('select * from name');
SQL.ADD('and(zdlx=:P_n)');
Params.CreateParam(ftString,'p_n',ptInput).Value:='dana';
OPEN;
 
最简单的方法:假设为Clientdataset1,由edit控件传递参数
Clientdataset1.close;
clientdataset1.commandtext:='select * from database_name where
fields_name='''+edit1.text+'''';
clientdataset1.open;
如果两个以上参数,则改为:
'select * from database_name where(fields_name='''+edit1.text+''') and
(fields_name1='''+edit2+''')';

 
同意Michael100的方法,稍微改一下:
commandtext :='select * from name and zdlx=:P_n';
Params.CreateParam(ftString,'p_n',ptInput).Value:='dana';
另外,帮助里面要求参数严格安装次序来,具体看params参数的帮助部分。
 
楼上的方法不错,我以前实现时是直接用TQuery来做,如上述SQL语句用TQuery写好并赋
参数后,用以下语句:
ClientDataSet1.CommandText := Query1.SQL.Text;
ClientDataSet1.Params := Query1.Params
ClientDataSet1.Open
 
我用过的方法
str:='select * from sjk where id=:id'
with ClientDataSet1do
begin
close;
DataRequest(str);
FetchParams;
end;
 
多人接受答案了。
 
后退
顶部