Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отображение в dbgrid таблиц из разных БД


Sewix ©   (2006-12-04 22:05:00) 

У меня распределенная БД. Interbase, Access, MS SQL server.
Interbase подключен через IBDatabase IBTransaction1.
Отображаю таблицы через  IBQuery.
Access и MS SQL подключены через ADOConnection.
Отображаю таблицы через ADOQuery.
Каждую таблицу отдельно успешно получилось отобразить в dbgrid.

Как мне одновременно вывести все таблицы из разных баз в один dbgrid?


Sewix   (2006-12-19 10:26:00) [1]

2 Sergey13
Задача состоит в том, чтобы работать как раз сразу с несколькими бд одновременно. Сформулирована, как тут уже угадали преподавателем.

Проблему стал решать так:
Прилинковал к аксесу mssql и interbase. И работал с этой базой. Что позволило работать сразу с несколькими базами.

Но теперь следующая проблема: новые данные в ней отображаются только после перезапуска программы.
Requery не спасает.
Я думаю он кудато кеширует данные. Как его заставить обновить?


sniknik   (2006-12-05 11:57:00) [2]

> В БДЕ существуют гетерогенные запросы, но имеет ли смысл перехода на БДЕ - вот вопрос.
ADO УЖЕ используется, 2 из 3х указанных движков УЖЕ поддерживают гетерогенные запросы, зачем еще кудато "переходить"?
надо просто использовать существующие возможности уже выбранных и уже используемых средств.


Плохиш   (2006-12-05 11:03:00) [3]


> Sergey13 ©   (05.12.06 10:08) [5]
> > [3] Sewix ©   (05.12.06 09:37)
>
> > Задача засвести зоопарк Interbase, Access, MS SQL server,
>  именно так и сформулирована.
> Кем сформулирована?

Время лабораторных пришло, неужели не понятно :-P


Sergey13   (2006-12-05 10:08:00) [4]

> [3] Sewix ©   (05.12.06 09:37)

> Задача засвести зоопарк Interbase, Access, MS SQL server, именно так и сформулирована.
Кем сформулирована? Зачем это надо? Может имеется в виду возможность выбора для работы разных СУБД, но не в одном сеансе, а в принципе?

В БДЕ существуют гетерогенные запросы, но имеет ли смысл перехода на БДЕ - вот вопрос.


novill   (2006-12-05 09:52:00) [5]

заливай их в один клиентдатасет.


Sewix   (2006-12-05 09:37:00) [6]

Все три таблицы из разных БД участвуют в одном sql запросе.
Все прекрастно работает в одном interbase.
Задача засвести зоопарк Interbase, Access, MS SQL server, именно так и сформулирована.

Dbgrid связан с DataSource с Query. Если одна база то все работает.
А как быть если несктолько DataSource с Query из разных БД?


Sergey13   (2006-12-05 08:45:00) [7]

> [0] Sewix ©   (04.12.06 22:05)

А по какому принципу все три таблицы из разных БД должны отбражаться в одном гриде (при чем тут вообще грид)? Они (данные таблицы) как то связаны между собой? Почему вообще возник такой зоопарк в одной программе?


sniknik   (2006-12-04 22:52:00) [8]

использовать ADO с подключением к MS SQL, в ADODataSet сделать гетерогенный запрос с обледенением различных рекордсетов, для Access использовать Jet, для Interbase любой найденный OLEDB провайдер. грид подцепить к этому датасету.

читать BOL по теме OpenRowset и связанном. (это вместо F1 ;)

то же самое можно в принципе сделать и от Access-а, тогда смотри справку аксесса по isam-ам, в частности по исаму ODBC.

для Interbase такого варианта нет. он не поддерживает гетерогенные запросы (или уже научился в новых версиях? кто там с 7.х работал?)

или можно на клиенте все "слить" в один рекордсет, клиентский, либо тот же адошный используемый в режиме кешированных изменений (чтоб в базу не записывалось) или вообще "оторванный" от базы (типа для гарантии).


Наверх

Титульная страница Поиск, карта сайта Написать письмо