关于网友提出的“ delphi中写带有"双引号字符串的sql语句,执行时会出错”问题疑问,本网通过在网上对“ delphi中写带有"双引号字符串的sql语句,执行时会出错”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: delphi中写带有"双引号字符串的sql语句,执行时会出错
描述: 我用的是sql server 2000数据库
在delphi程序中写的SQL语句如下
sql:='Update Maintenance Set Equ='+QuotedStr('15"AOC')+' where E_id=3'
执行时会提示:不正常地定义参数对象。提供了不一致或不完整的信息
如下SQL语句,使用两个双引号不会出错,但写入表的结果却是带有两个引号: 15""AOC
sql:='Update Maintenance Set Equ='+QuotedStr('15""AOC')+' where E_id=3'
解决方案1:
不要使用函数QuotedStr,因为该函数是将字符串转义为引号字符串
即
设 aString := '15''AOC'; //aString所表示的字符串是 15'AOC
QuotedStr('15''AOC') 等于 '15''AOC'//QuotedStr('15''AOC')所表示的字符串是 '15''AOC'
将你的sql语句改成下面的方式即可。
sql := 'Update Maintenance Set Equ=' + '''15''AOC''' + ' where E_id=3';
解决方案2: 执行语句:INSERT INTO Maintenance (Equ) VALUES ('"''\%')
GO
SELECT Equ FROM Maintenance WHERE Equ='"''\%'
GO
可以确认在SQLServer中需要转义的只有单引号,也就是说在SQL语句中两个连续的单引号代表一个单引号,双引号和斜线无须转义
以上介绍了“ delphi中写带有"双引号字符串的sql语句,执行时会出错”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3182075.html