Russian Qt Forum

Qt => Базы данных => Тема начата: SibBear от Август 19, 2012, 22:09



Название: Две базы SQLite в одном QTableView
Отправлено: SibBear от Август 19, 2012, 22:09
Здравствуйте. Есть два (в дальнейшем м.б. больше) файла БД SQLite с одинаковой структурой на разных машинах. Нужно сделать программу со сводной таблицей, которая загружала бы их (базы) по локалке, с дальнейшим просмотром/распечаткой. Можно ли сделать запрос одновременно из обеих баз в QTableView + QSQLTableModel (QSqlQueryModel), не создавая еще одну базу?


Название: Re: Две базы SQLite в одном QTableView
Отправлено: Странник от Август 19, 2012, 22:23
нет. вам нужно собирать данные с разных машин в одну модель вручную. либо написать свою модель, которая будет этим заниматься. как вариант - прокси-модель над N моделями.


Название: Re: Две базы SQLite в одном QTableView
Отправлено: LisandreL от Август 20, 2012, 08:28
Можно через attach.

Есть 1.db и 2.db с одинаковыми таблицами:
Цитата: sql
CREATE TABLE [Test] (
  [ID] INTEGER PRIMARY KEY ON CONFLICT ROLLBACK,
  [Text] CHAR NOT NULL ON CONFLICT ROLLBACK);

Аттачим:
Цитата: sql
ATTACH DATABASE 'C:\Users\LCF\Desktop\2.db' AS 2;

Запрашиваем:
Цитата: sql
SELECT * FROM [Test] UNION ALL SELECT * FROM [2].[Test];


Название: Re: Две базы SQLite в одном QTableView
Отправлено: SibBear от Август 20, 2012, 12:09
Благодарю.