Если уже так случилось, и вы работаете с базой данных в Delphi через BDE, да ещё и нужно сделать запрос к таблицам в разных базах, то эта запись как раз для вас.
Решение проблемы есть. Кидаем на форму или датамодуль два компонента TDATABASE. Выбираем для обоих AliasName, Name и DatabaseName. Пусть будут AliasName1, Name1, DatabaseName1 и AliasName2, Name2, DatabaseName2. Допустим, необходимо сделать запрос к таблице RealTable1 базы данных AliasName1 и таблице RealTable2 базы данных AliasName2, тогда, поместим на эту же форму компонент TQuery и назовём QRY1. Обращение к нужным таблицам в свойстве SQL невизуальной компоненты QRY1 нужно будет записать в следующем виде: «:DatabaseName1:RealTable1″ и «:DatabaseName2:RealTable2″ соответственно. Простейший запрос в QRY1 будет выглядеть как:
SELECT firsttable.field1,secondtable.field2
FROM
":DatabaseName1:RealTable1" firsttable,
":DatabaseName2:RealTable2" secondtable
WHERE firsttable.field3= secondtable.field4
ну или аналогичный запрос через join
SELECT firsttable.field1,secondtable.field2
FROM ":DatabaseName1:RealTable1" firsttable inner join
":DatabaseName2:RealTable2" secondtable
ON firsttable.field3=secondtable.field4
Предупреждаю, работает очень медленно, поэтому не советую использовать на больших запросах и без особой необходимости. По возможности, лучше создать хранимую процедуру (stored procedure) на сервере, которая будет обращаться к этим двум таблицам и возвращать готовую выборку в компонент TStoredProc.
VN:F [1.9.13_1145]
Rating: 9.0/10 (1 vote cast)