- PVSM.RU - https://www.pvsm.ru -
Сначала результат, а потом разбор полетов. Допустим, вы создали запрос типа select [document].[id], [document].[name] from [SomeDocuments][document]
, но вместо ожидаемого
id = 1
name = d1
получаете
document = 1
document = d1
А теперь, если интересно будем разбираться.
В общем все описано в документации к функциям sqlite3_column_name и sqlite3_column_name16 [1]
Как получить результат в коммандной строке (под рукой была версия 3.7.16.2
, в продукте 3.8.1
)
.mode line
create table [Documents]([id] integer, [name] text);
insert into [Documents]([id], [name]) values (1, "d1");
select [d].[id], [d].[name] from [Documents][d];
id = 1
name = d1
Работает, как и ожидалось. Продолжим
create view [DocView1] as select * from [Documents];
select [d].[id], [d].[name] from [DocView1][d];
А теперь
d = 1
d = d1
Естественно ожидать такое же поведение в последних версиях от функций sqlite3_column_name.
select [document].[id] as [document.id] ...
, то на выходе в QSqlRecord
у вас будут поля без «document.
», т.е. просто «id
».Спасибо за внимание, удачного дня.
Автор: abby
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/50710
Ссылки в тексте:
[1] sqlite3_column_name и sqlite3_column_name16: http://www.sqlite.org/c3ref/column_name.html
[2] Источник: http://habrahabr.ru/post/206010/
Нажмите здесь для печати.