0

ODAC 6.2 に問題があります。ODAC についてのページでは、ODAC が Unicode をサポートしていると書かれています。現在、TOraSQl コンポーネントを使用して、Oracle の Unicode テーブルに接続しています。テーブルで Unicode データを表示できません。ANCII コードしか表示されません。助けてください。TOraSql は Unicode をサポートしていないと思います ;)

4

1 に答える 1

0

免責事項: 私は DevArt Sql Server Data Access Componentsのみを使用していますが、それらはOracle Data Access Componentsと十分に類似していると思いますので、質問に答える目的には関係ありません。

データベースの文字列フィールドの場合、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 に答える