使用MS SQL 2008 R2 (sp 2)或MS SQL 2005 (sp4)时,Delphi XE2(update2)存在问题。
form1.ado_m通过TADO数据集实现,未进行参数检查,使用本地64位sql。
var
okd:boolean;
dd:ansistring;
代码片段:
okd:=form1.ado_m.Locate('abcrow',dd,[loCaseInsensitive]);
如果变量dd的值以单引号结尾(在调试器中会被转换为''),则会引发异常:
异常类EOleException,消息为“参数类型错误,超出可接受范围或彼此冲突”。
奇怪的是,如果变量dd中间有一个单引号字符,则可以正常工作。有什么解决方法吗?
QuotedStr(dd)
而非仅仅使用dd
,或者将值的赋值改为dd := QuotedStr(Something);
。 - Ken WhiteQuotedStr
的问题,因为您没有发布使用它的任何代码。实际上,您甚至没有发布任何代码来显示将任何内容分配给dd
,尽管您声称问题就出在那里。 - Ken White