Я работаю над небольшим приложением в Qt и использую библиотеку SQL вместе с SQLite в качестве базы данных. Пока что это сработало хорошо. Класс QSqlQuery
предоставляет только метод для получения значений столбцов по index вместо name поля . Однако с помощью функции record()
текущую строку в запросе можно превратить в QSqlRecord
, которая имеет функцию value()
для получения значений по имени поля.
Итак, это отлично работает и позволяет мне писать более короткий и понятный код, но запрос на соединение, подобный следующему, вызывает проблемы:
SELECT t1.*, t2.* FROM table1 AS t1, table2 AS t2 WHERE t1.table2_id=t2.id
Таким образом, мы выполняем этот запрос как обычно и преобразуем строку в запись. Но оказывается, что имена столбцов в QSqlRecord
не имеют префикса с именем таблицы - например, есть два столбца с именем id
, которые можно найти в объекте записи. Это, очевидно, немного проблематично.
Как лучше всего решить эту проблему?
(я обнаружил эту проблему в трекере ошибок Qt, но это не сильно помогает.)