Я использую SQLite для локального выполнения запросов внутри клиентского приложения. Но для строкового поля только с одним символом Юникода запрос SQLite не может отображать его должным образом. Вместо этого один символ Unicode будет отображаться как '?' в сетке.
Вот код двух типов запросов: qryV001X запускается из SQLite, а qryV001Y - из Firebird DBServer. Используются компоненты FireDA C: sqlLocalConn и sqlFirebird - это TFDConnection, qryV001X и qryV001Y - это TFDQuery.
var
sqlDriverLink: TFDPhysSQLiteDriverLink;
sqlLocalConn: TFDConnection;
sqlLocal: TFDLocalSQL;
sqlFirebird: TFDConnection;
qryV001X: TFDQuery;
qryV001Y: TFDQuery;
begin
with qryV001X do begin
Connection := sqlLocalConn;
SQL.Text := 'SELECT F004, F006 FROM T001;';
// T001 is fetched from DBServer by TFDTable inside application.
// Its records are displayed correctly for all unicode characters.
Active := True;
end;
with qryV001Y do begin
Connection := sqlFirebird;
SQL.Text := 'SELECT F004, F006 FROM T001;';
Active := True;
end;
end;
[Новое обновление] Вот структура вызова для двух запросов.
Единственное отличие между sqlLocalConn и sqlFirebird в том, что используется SQLite как DriverName и любой другой использует FB.
Есть ли какие-либо настройки в SQLite для поддержки юникода или я что-то не так сделал?
Спасибо.