SQLite в Delphi неправильно отображает одно символьное поле Юникода - PullRequest
0 голосов
/ 04 мая 2020

Я использую SQLite для локального выполнения запросов внутри клиентского приложения. Но для строкового поля только с одним символом Юникода запрос SQLite не может отображать его должным образом. Вместо этого один символ Unicode будет отображаться как '?' в сетке.

Two queries results in DBGrid

Вот код двух типов запросов: 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;

sqlFirebird sqlLocalConn

[Новое обновление] Вот структура вызова для двух запросов.

calling structure

Единственное отличие между sqlLocalConn и sqlFirebird в том, что используется SQLite как DriverName и любой другой использует FB.

Есть ли какие-либо настройки в SQLite для поддержки юникода или я что-то не так сделал?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...