关于D2006中 TWideStrings 与 TStrings 的问题(100分)

  • 主题发起人 主题发起人 方竹
  • 开始时间 开始时间

方竹

Unregistered / Unconfirmed
GUEST, unregistred user!
在D7中,ADOQuery1.SQL的类型为TStrings,
而在D2006中,ADOQuery1.SQL的类型为TWideStrings,
所以在升级过程中,涉及类型的转换问题(烦[:(!]),

从网上抄了一段程序:
function WideStringsToStrings(Sour: TWideStrings;var Dest:TStrings):integer;
var
I:Integer;
begin
if Sour.Count>0 then
begin
for I := 0 to Sour.Count-1 do
Dest.Add(Sour.Strings);
end;
Result :=Sour.Count;
end;

各位看看有没有什么问题?
或者在D2006中有没有什么编译开关设置,可以不用进行程序转换?
 
不可以直接

Strings.Assign(WidStrings) ?
 
我原来是直接TStrings(ADOQuery1.SQL),
编译是通过了,不过提示"不安全的类型转换",
所以我想知道有没有更好的方法,
还想知道为什么D2006这样搞?为了支持数据库的Unicode数据类型?
 
Strings.Assign(WidStrings)[:)]
 
后退
顶部