请举例说明带单引号的数据的保存问题的解决
有部分字段的数据有一个单引号,在保存数据时系统就报错。
有人建议“再加一个单引号”,我试了,没有成功;
有人建议“用Quotedstr()函数; 把内容放在括号里面”,我也试了,也没有成功。
请帮帮忙,举几个详细的例子,来解决这一问题。
谢谢!
[解决办法]
内容为:ab'cd
s:='ab''cd';//在字符串中两个单引号代表一个单引号
内容为:ab''cd
s:='ab''''cd';//在中间的四个单引号表示2个单引号
内容为:a'b'c'd
s:='a''b''c''d';//这个典型的两个单引号表示1个单引号。
edit1的内容为:ab'cd
s:=Quotedstr(self.edit1.text);//我们保存数据时一般都用变量或控件用这个函数最方便了。
内容为:ab'cd
s:='ab''cd';//在字符串中两个单引号代表一个单引号
上面这两个S的值都是一样的。
[解决办法]
[解决办法]
内容为:ab'cd
保存时:Quotedstr('ab'+#39+'cd')
[解决办法]
s:='';
Quotedstr(s);
[解决办法]
习惯用参数传递参数是安全的行为
[解决办法]
1 首先要明白在查询分析器里面一个单引号是怎么表示的?
2 要明白DELPHI里面一个单引号是怎么表示的?
[解决办法]
如果要查询数据库中的 字符串关键字时,建议使用Quotedstr()
[解决办法]
var
sql :string;
begin
sql := 'insert into table1 values(''1234'''' '')'; //这样中间就有一个单引号了
end;
[解决办法]
写个函数不就搞定了
function ReturnJudge(Val:String;BStr:Boolean):String;
begin
if BStr then
//参数为字符串
if Val<>'' then
if Val=' - - ' then
Result:='null'
else
Result:=''''+ Val + ''''
else begin
Result:='null';
end
else begin
//参数为整数
Result:=Val;
if Val='' then
Result:='null';
end;
end;
val为字段值,Bstr是否为字符类型