首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

pb提交oracle字符串中包含单引号的有关问题

2012-03-22 
pb提交oracle字符串中包含单引号的问题s_sqlupdate info set password+sle_2.text+ where name+

pb提交oracle字符串中包含单引号的问题
s_sql="update info set password='"+sle_2.text+"' where name='"+ddlb_1.text+"'"

EXECUTE IMMEDIATE :s_sql USING sqlca; 

现在sle_2.text有可能包含单引号、双引号,所以提交到oracle时,就成了这样:
update info set password='dk3'sdf' where name='zzh',报错,请教一下怎么处理这个问题

[解决办法]
处理字符串,
string ls_value1
ls_value1 = sle_2.text
if pos(value1,"'")>0 then
...
ls_value1 = ...+"'"+...
elseif pos(value1,'"')>0
ls_value1 = ...+'"'+...
end if
有多个引号利用do while ...loop处理数据。
[解决办法]
其实不复杂,做个全局替换Function,但也要逐个分隔字符串。
[解决办法]
把字符串里的',''加上~来转义
[解决办法]
出错的原因是sle_2.text中的单引号没有加oracle的转义符,使用替换功能加上转义符就可以了。

C# code
String ls_StrLong ll_Posls_Str = sle_2.Textll_Pos = Pos(ls_Str, "'")Do While ll_Pos > 0  ls_Str = Replace(ls_Str, ll_Pos, "''")  ll_Pos ++Loop
[解决办法]
自己写个replace函数将单引号替换成两个单引号
[解决办法]
其实不复杂,做个全局替换Function

热点排行