Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > TSQLConnection и SQLite - не работают alias`ы (AS)


Автор: ange007 5.8.2017, 15:23
Приветствую.
Собственно использую TSQLConnection для общения с SQLite базой.

Код

'SELECT COUNT(DISTINCT `messages`.`id`) AS `count`,
            SUM(CASE WHEN `out` = 0 THEN `unread` ELSE 0 END) AS `unread_in`,
            SUM(CASE WHEN `out` = 1 THEN `unread` ELSE 0 END) AS `unread_out`
            FROM [table] 


Код

{Создаём БД}
FSQLConnection := TSQLConnection.Create(nil);
with FSQLConnection do
begin
  ConnectionName := 'SQLITECONNECTION';
  DriverName := 'sqlite';
  Params.Values['Database'] := 'data.db';
  Params.Values['FailIfMissing'] := 'False';
  LoginPrompt := True;
  Connected := True;
end;

{Выполняем запрос}
FSQLConnection.Execute(cSelectQuery, Params, Results);

{Считываем поля}
Results.GetFieldNames(fields);

И получаю: Column0Column1Column2 вместо нужных имён полей.

user posted image

Почему так? И как исправить? Информации по данному поводу найти не удалось по какой-то причине.
Заранее зпасибо за помощь.

Автор: ange007 5.8.2017, 16:37
Сам спросил - сам отвечаю.
Необходимо добавить параметр соединения с БД: 
Код

ColumnMetaDataSupported = False


Код

FSQLConnection.Params.Values['ColumnMetaDataSupported'] := 'False';

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)