Отказ от ответственности: я использую только 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.