Последняя триальная версия PgDAC.
Кодировка БД: UTF-8.
Любая версия PostgreSQL
Код программы
Код: Выделить всё
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, PgAccess, Winapi.Windows;
var
Query: TPgQuery;
Connection: TPgConnection;
Start: Cardinal;
Finish: Cardinal;
Caption: string;
begin
try
Connection := TPgConnection.Create(nil);
Connection.Server := '10.0.2.2';
Connection.Database := 'main';
Connection.Username := 'indy';
Connection.Options.UseUnicode := True;
Query := TPgQuery.Create(nil);
Query.Connection := Connection;
Query.SQL.SetText('SELECT ''тест'' AS test');
Query.Open;
Caption := Query.FieldByName('TEST').AsString;
MessageBox(0, PWideChar(Caption), '', MB_OK);
Query.Close;
Query.Options.UnpreparedExecute := True;
Query.Open;
// При включении UnpreparedExecute запрос возвращает данные в неверной кодировке
Caption := Query.FieldByName('TEST').AsString; // 'тест'
MessageBox(0, PWideChar(Caption), '', MB_OK);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.