0

我对 ODAC 6.2 有疑问。在关于 ODAC 的页面中写到 ODAC 支持 Unicode。现在我使用 TOraSQl 组件并连接到 Oracle 中的 Unicode 表。我无法在表中查看 Unicode 数据。我只看到 ANCII 代码。请帮助我。我认为 TOraSql 不支持 Unicode ;)

4

1 回答 1

0

免责声明:我只使用 DevArt Sql Server 数据访问组件,但我猜它们与Oracle 数据访问组件足够相似,因此对于回答您的问题并不重要。

对于数据库的字符串字段,TWideStringField将创建一个组件,其Value属性返回一个 WideString。就像是:

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  w: WideString;
begin
  for i := 0 to MSQuery1.FieldCount - 1 do begin
    if MSQuery1.Fields[i] is TWideStringField then
      w := TWideStringField(MSQuery1.Fields[i]).Value;
  end;
end;

所以组件绝对支持 Unicode,但你不能简单地在 Delphi 2009 之前的 Delphi 版本中连接一个表、一个数据源组件和一个网格,并期望这会向你显示 Unicode 文本——那些 Delphi 版本中的 VCL 不是能够显示Unicode字符串。您可以使用TNT Unicode Controls,尽管我不能说是否有数据感知控件(我没有使用 TNT 控件的经验)。

或者,Mike Lischke 的Virtual Treeview在早期的 Delphi 版本中工作,并使用 Unicode API 调用。

但是最好简单地使用 Delphi 2009 及其支持 Unicode 的 VCL。

于 2009-06-08T13:54:53.587 回答