ADO/MTS/COM+做多层的,汉字传递被截断很正常!我不知道为什么,但
一个办法可以解决!在中文字符后加上总字符长度的一般回车键!
富翁论坛版权所有
问题:ClientDataSet中的查找 ( 积分:50, 回复:9, 阅读:76 )
分类:MIDAS / DCOM ( 版主:Chenlili, 房客 )
来自:JackyKen, 时间:2003-3-31 17:20:00, ID:1725494 [显示:小字体 | 大字体]
ClientDataSet1.Locate('用户名称',Search_String,[loCaseInsenSitive,loPartialKey]);
如上所示的语句中,假若Search_String中包含汉字,则查找不到所要查找的,只有全是数字(如Search_String:='1111')
才能查找得到,请问是怎么回事?急!!!!!!!!
来自:龙龙, 时间:2003-3-31 17:24:00, ID:1725525
ClientDataSet1.Locate('用户名称',vararray([Search_String,[loCaseInsenSitive,loPartialKey]]));
来自:JackyKen, 时间:2003-3-31 17:30:00, ID:1725560
龙龙,你试过了吗??
不对啊,编译通不过
来自:JackyKen, 时间:2003-3-31 18:02:00, ID:1725677
哪位来帮帮忙啊,急!!!!!!!啊
来自:lgxyy, 时间:2003-3-31 18:23:00, ID:1725727
将[]中的参数去掉
来自:xeen, 时间:2003-3-31 18:29:00, ID:1725745
http://www.delphibbs.com/delphibbs/dispq.asp?lid=583696
来自:jrq, 时间:2003-3-31 19:08:00, ID:1725833
这样:ClientDataSet1.Locate('用户名称',Search_String,[]);
‘用户名称’是字段名,Search_String是字段值,没问题的。
来自:52free, 时间:2003-3-31 19:29:00, ID:1725884
这个问题早就有人讨论了若干次
在三层中,确实对中文字符串的处理是不正确的
它会将字串截半
比如说对一个sqlserver中的存储过程的参数赋值‘我爱中华’
到事件探查器里看看,那个参数值变成了‘我爱’
所以在三层中最好不要传中文参数
来自:JackyKen, 时间:2003-4-1 9:21:00, ID:1726826
这个问题只有在用Access数据库时有,用SQL就没问题。
我看到以前的问题里,有人提出了解决方法,就是将Access默认的TWideString改为
TString,只是我找了半天也没找到在哪里改。
希望有知道的告诉我一下,帮帮忙啊
来自:ctyfy11111, 时间:2003-4-1 14:30:00, ID:1727684 | 编辑
一样的情况,有一个好办法
function gethzcount(s:string):integer;//得到汉字的个数
var i,j:integer;
begin
result:=0;
j:=0;
for i:=1 to length(s)do
begin
if (S>#128) and (j<i) then
begin
j:=i+1;
result:=result+1;
end;
end;
end;
function getenterch(s1:string):string;
begin
Result:=S1+StringOfChar(#13,gethzcount(s1));
end;