Delphi中对SQL语句格式化时如果IN语句后面是数组,用什么表示?
format('delete * from workerday where (wdate>=%.5f) and (wdate <%.5f) and (p_id in %d)',[floattodatetime(trunc(dtp1.Date)),floattodatetime(trunc(dtp2.Date)),A])
上面这句话中p_id是人员编号,都存在INTEGER类型的数组A中,我的意思就是(p_id in %d)句中的%d肯定不对的,应换成什么?
[解决办法]
先把数组变成 符合in格式的 string,然后并进去。
[解决办法]
放在IN数组里的格式是:p_id in [1,2]
[解决办法]
%d,会被替换成字符串,这样就拼成了完整的sql
[解决办法]
只要拼出来的SQL对就OK