怎么实现这样难度的方法?请高手出招!(200分)

  • 主题发起人 主题发起人 delphi英雄
  • 开始时间 开始时间
D

delphi英雄

Unregistered / Unconfirmed
GUEST, unregistred user!
我想写一个方法:ParamsToSQL(ds:TClientDataSet);是想从ClientDataSet中
CommandText的带参数的SQL语句和其参数Params中撮出真实的SQL语句来,例如:
ClientDataSet1.CommandText:='Select * from Table1 where aa=:QQ';
clientdataset.fieldbyname('QQ').asstring:='中国人';
ParamsToSQL(ClientDataSet1);
得到真实的SQL语句结果:SQL:='Select * from Table1 where aa=''中国人''';
那位高手能给些思路?谢谢!
 
提取冒号与下一个空格之间的字符串做为参数表
找出所有参数并变为可以插入到SQL中的字符串,如
数字用 inttostr
日期加 # 到两边
…………
再根据参数表替换应该可以
 
const s='Select * from Table1 where aa=%s'
format(s,['中国人'])
clientdataset.commandtext.text
 
在表没打开的时候,clientdataset.fieldbyname('QQ').asstring:='中国人' 这一句能
成立吗?
要取得ClientDataset的真实SQL语句,用它的CommandText属性就行了。
 
较好的解决方法:
用字符串函数StringReplace将PARAM替代为想要的值即可!
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
493
import
I
I
回复
0
查看
756
import
I
后退
顶部