在delphi中,使用ADOQuery控件进行查询时怎样才能传递双字节,
比如说sql语句是:
var
str:widestring;
with ADOQuery do
begin
clear;
sql.clear;
sql.add('select * from B_TABLEK where name=:name');
parameters[0].value:=str;
parpered;
open;
end;
我用sql server查询双字节比如韩文时都能够查询,
但是采用控件的时候却总是查不出来.
请那位大侠能够帮忙,不胜感激.
比如说sql语句是:
var
str:widestring;
with ADOQuery do
begin
clear;
sql.clear;
sql.add('select * from B_TABLEK where name=:name');
parameters[0].value:=str;
parpered;
open;
end;
我用sql server查询双字节比如韩文时都能够查询,
但是采用控件的时候却总是查不出来.
请那位大侠能够帮忙,不胜感激.
不过如果同样的程序, 拿到Win2000或XP上就不会用问题。Delphi的对Unicode的支持都是依赖平台来实现的, 当然, 你可以改写控件来实现, 还过这样的工作量太大了:(学习中
而後者是TStringField, 是用DBCS(Double byte char. set)是看不到unicode.我相信问题是Delphi的ADO所调用的MDAC, 未有相应unicode和DBCS调换. 当我改用SQL Direct来取代ADO之後, 因为SQL Direct是可以透过 SQL 2000 客户端的运行库来连MS SQL, 所有的 unicode和 DBCS 都是自动的运行, 不曾出现过乱码.
我在sql server2000里查询有unicode字段的数据都没有问题,
但是delphi中使用ADOQuery控件好象都不管用,
听一位朋友说在access中用下面语句:
var
s:widestring;
sq;:='select * from b_tree where field='''+s+''''都没有问题,
但我用了,好象不管用,有哪位大侠能够指点吗?