当一个字符串中包含汉字时,用Length和Pos等字符串函数返回的字符串长度不对;
如有下面用法
strSql:='select * from tbtest where Name='''测试''' order by name asc';
nPos:=Pos('order',strSql);
strSql:=MidStr(strSql,0,nPos-1);
如果strSql语句全是英文此时strSql返回的是order前面的字符串;
但是象上面包含汉字,返回的则是'select * from tbtest where Name='''测试''' ord';此语句不能正确解析汉字的长度,很头痛!我该如何解决,谢谢帮助!
如有下面用法
strSql:='select * from tbtest where Name='''测试''' order by name asc';
nPos:=Pos('order',strSql);
strSql:=MidStr(strSql,0,nPos-1);
如果strSql语句全是英文此时strSql返回的是order前面的字符串;
但是象上面包含汉字,返回的则是'select * from tbtest where Name='''测试''' ord';此语句不能正确解析汉字的长度,很头痛!我该如何解决,谢谢帮助!
解决方案 »
- delphi clientdataset 操作oracle 的blob字段
- delphi radiogroup
- 求教Delphi中与C/Java等语言中的unescape/escape有类似功能的函数,给自己写的代码也行,谢谢
- jackie168(玉面書生) 先进来拿分!②
- 在Internet上,怎么与其它计算机进行通讯,使用什么方法比较好,UP有分???
- 各位大侠 那位提供一下好的报表控件 ,最好有源码和帮助, please up
- 求 delphi 格式化处理 excel的技术文档
- 高手指点:将数据通过excel的脚标导入 做成漂亮的报表?
- 关于finger的问题。
- 組件問題
- Memo问题
- dbgrid问题
nPos:integer;
strSql:string;
begin
strSql:='select * from tbtest where Name=''测试'' order by name asc';
nPos:=Pos('order',strSql);
strSql:=Copy(strSql,1,nPos-1);
showmessage(strSql);
end;
另外你的'''测试''' 改为''测试''
strSql:='select * from tbtest where Name=''测试'' order by name asc';
nPos:=Pos('order',strSql);
strSql:=MidBStr(strSql,0,nPos-1);