请问如何将十六进制字符串处理成的字符串写入到数据库中? ( 积分: 100 )

  • 主题发起人 主题发起人 doby_li
  • 开始时间 开始时间
D

doby_li

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何将十六进制字符串处理成的字符串写入到数据库中?
比如现有字符串:
s1:='6899999999999968050161CD16';
现我用HexToStr函数将十六进制字符串处理成字符串
即s2:=HexToStr(s1);
我用showmessage(s2)显示出来的s2是乱码一样的东西,
现在我是要将s2的值用sql语句写入数据库中,
我用的sql语句类似下列的语句:
sqltest:='update t_commcont set comm_cont='''+S2+''' where u_meterid=1000001';
错误提示为:
"ORA-01756 括号内的字符串没有正确结束",我用的是oracle数据库。

请问错在哪里,就如何将s2的值写入数据库?
请高手指点,谢谢。



附我用到的HexToStr函数。
function HexToStr( //十六进制字符串处理成字符串
mHex: string //十六进制字符串
): string; //返回处理后的字符串
var
I: Integer;
begin
Result := '';
mHex := StringReplace(mHex, #32, '', [rfReplaceAll]);
for I := 1 to Length(mHex) div 2 do
Result := Result + Chr(StrToIntDef('$' + Copy(mHex, I * 2 - 1, 2), 0));
end; { HexToStr }
 
每4个为一位,分别取,然后再转换,你看看还是不是乱码
 
wzquan,你好,我现在就是想要将这乱码写入数据库中,可是写不进去,报错呀。
hextostr(s1)出来的数据是一串乱码,现在就是要将这一串乱码写入数据库。
有人说这一串乱码是二进制的格式,

请问有什么办法解决这个问题呀?
谢。
 
字符串S2内有单引号
用StringReplace替换一次,把一个单引号的都替换成两个单引号
 
我操,这个世界没有天理了~~~~~ MD,老虎不发威,当我是病猫, 先骂人的倒有理了 我可是从来不主动得罪人的 谁要是欺负人,那就不客气了 明天把这个工具开个源,叫大家都来用用 请问你们有什么拿的出手的?自己写的东西? 说出来叫大爷我长长见识? 别不会是一群耍嘴皮子的废物吧? 需要的请关注我的 blog http://hi.baidu.com/earthsearch
 
后退
顶部