ODAC и Unicode - PullRequest
       27

ODAC и Unicode

0 голосов
/ 08 июня 2009

У меня проблема с ODAC 6.2. На странице про ODAC написано, что ODAC поддерживает Unicode. Теперь я использую компонент TOraSQl и подключаюсь к таблице Unicode в Oracle. Я не могу просмотреть данные Unicode в таблице. Я вижу только код ANCII. Пожалуйста, помогите мне. Я думаю, что TOraSql не поддерживает Unicode;)

1 Ответ

0 голосов
/ 08 июня 2009

Отказ от ответственности: я использую только DevArt SQL Server * Компоненты доступа к данным , но я думаю, они достаточно похожи на 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 до Delphi 2009 и ожидать, что это покажет вам текст Unicode - VCL в этих версиях Delphi не может отображать строки Unicode. Вы можете использовать Элементы управления Unicode TNT , хотя я не могу сказать, существуют ли элементы управления с поддержкой данных (у меня нет опыта работы с элементами управления TNT).

В качестве альтернативы Virtual Treeview Майка Лишке работает в более ранних версиях Delphi и использует вызовы API Unicode.

Но было бы намного лучше просто использовать Delphi 2009 с VCL с поддержкой Unicode.

...