Страница 1 из 1
Данные из двух баз.... как?
Добавлено: 10 окт 2005, 10:14
DenisV
Короче поиск дал ответ что одним запросом нельзя...
Звиняйте если что... только зарегился и все не охватил...
имеются 2 gdb.
В одном данные с кодами. В другом расшифровка кодов.
Данные не мои (базу проектировал не я).
У разработчиков программы расшифровка показывается при клике на кнопке. Хочу в Дельфях написать просмотр без кодов напрямую в одной табличке... (т.е. получить данные из двух баз)
Как это сделать?
Посоветуйте!!!
Укажите путь!!! Дальше сам попробую....
Добавлено: 10 окт 2005, 10:33
Владимир Каратаев
вообще-то надо подробней писать. структуру БД, например. а у разработчиков сделано отдельно по клику понятно почему- в firebird низя сделать запрос одновременно к двум БД. так что либо БД сливай в одну, либо отдельными запросами к каждой БД.
Добавлено: 10 окт 2005, 10:35
Ivan_Pisarevsky
Как вариант 2 ибдатабэйза (соотв. 2 ибтранзакшн), к ним 2 ибквери (каждый к своей БД), да еще 2 датасорса, причем для второго квери, который будет показывать расшифровки родительским датасорсом указать первый датасорс, ну и разумеется запрос с параметром. Только это будет неодин грид со всем сразу, а грид с кодами и расшифровка для активной записи, при этом дополнительной кнопки для просмотра не потребуется.
Либо использовать не дбгрид, а что-то вроде стринггрида и сшивать вручную на клиенте.
Добавлено: 10 окт 2005, 10:39
kdv
одним запросом можно, только через BDE, и он делает это сам
www.ibase.ru/devinfo/bde.htm
Добавлено: 10 окт 2005, 12:36
DenisV
БД сливай в одну.
Не могу.... нельзя....
Как вариант.... сшивать вручную на клиенте.
Пробую изо всех сил... много глюков... да и "некрасиво" это как-то..
Но если не получится вернусь к этому варианту...
одним запросом можно, только через BDE...
Уже читаю.... Сэнкс...
Добавлено: 10 окт 2005, 15:22
DenisV
Короче вот что вышло.....
Создал 2 alias-а в BDEadministrator.
В одном для одной базы в другом для другой.
Драйвер INTRBASE.
Третий alias STANDARD.
В нем:
select a.nam_nu, b.nam
from
":base1:bs_nu" a inner join ":base2:bs_spr" b
on a.kd=b.kd
Все отлично сработало.
Затем на аналогичном запросе
select a.nam_nu, b.nam
from
":base1:ds_nu" a inner join ":base2:ds_spr" b
on a.kd=b.kd
Вылетает ошибка. Полез в SQLanalizer он показывает что на этапе
prepare он выбирает все поля из таблицы. А во втором варианте есть
дата изменения справочника. Так в общем и вылетает ошибка типа данных (тип DATE) для этого диалекта.
Где чего поменять или задать?
Видеть диалект можно в компоненте IBTable, но тогда предыдущее не
работает...
Блин, сорри за сумбур.. мОзги уже кипят...
Column unknown
DATV
Client SQL dialect 1 does not support reference to DATE datatype
Добавлено: 10 окт 2005, 15:36
kdv
ыыыы. sqldialect в алиасе BDE настрой.
www.ibase.ru/ibfaq.htm#bde
Добавлено: 11 окт 2005, 07:47
DenisV
KDV! Святой человече....
Не "ыыыы-кай, плиииз!"
Уже читаюпросвещаюсь...
Однако в 3 диалекте ":base1:ds_nu" воспринимается как имя таблицы
и пишет, что такой таблицы нет...
Хэлп!!!
Добавлено: 11 окт 2005, 09:47
kdv
погодь, алиас standard не должен воспринимать "диалект", я имел в виду один из алиасов IB. Попробуй сам пока, мне страсть как не хочется это проверять, как минимум до обеда.
Добавлено: 11 окт 2005, 10:21
DenisV
Да чет не тудыть... её растак...
Пишет Table does not exist.
Добавлено: 11 окт 2005, 10:36
kdv
смотри в sql monitor что уходит в алиас БД в третьем диалекте. Если там имя таблицы обрамляется двойными кавычками, так укажи ее имя в точном соответствии с регистром букв, с каким она была создана.
Добавлено: 11 окт 2005, 10:48
DenisV
Ах итить.....
Заработала!!!
Если имя таблицы писать не так как видно а как создавал...
Ну зачем он ВСЕ поля анализирует а не те что выбираю...
тормозуха такая...
Ладно, огрмоное сэнкс!!! буду думать дальше....
О сколько нам открытий чудных
готовит просвещения дух...
Добавлено: 17 окт 2005, 17:49
prvlad
Это все дико интересно, особенно BDE

) А вот через адо, работая через IB Provider никто не пытался такое сделать ?
Добавлено: 17 окт 2005, 19:32
kdv
через IBProvider можно из MS SQL обращаться к IB/FB. это уже давно у них работает, и многие пользуются этой фичей. На сайте ibprovider.com есть пример. Вроде бы и из Оракла так же можно.