Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизSQL-запрос из разных БД Найти похожие ветки
← →
belkova (2004-01-06 09:44) [0]Уважаемые мастера Delphi! Подскажите, пожалуйста,
как работать сразу с двумя БД. Требуется сделать запрос из 2 таблиц, которые находятся в разных БД. заранее боагодарна.
← →
Mery (2004-01-06 09:57) [1]Примерно так:
select table1.pole1, table2,pole1
from table1, table2
where твое условие
← →
Ильш (2004-01-06 09:59) [2]секундочку !!! IB6.x - это ж не файл-сервер... я так понял в разных БАЗАХ (а не в разных таблицах) все лежит? верно?
← →
belkova (2004-01-06 10:01) [3]Именно так! Таблицы лежат в разных базах.
← →
YuRock (2004-01-06 10:01) [4]Не слышал о таком. Сам посмотрю с удовольствием, если кто предложит нормальный вариант :)
← →
Johnmen (2004-01-06 10:01) [5]>belkova
Если только БДЕ. Тогда можно делать гетерогенные запросы...
← →
belkova (2004-01-06 10:09) [6]Может быть кто-нибудь предложит другое решение. Ситуация такова: Существует БД , написанная в IB. В локальном варианте проблем нет. Когда работает несколько пользователей, появляется необходимость в создании локальных таблиц, для каждого пользователя. Как их создать, чтобы при этом можно было создать запрос и к локальным таблицам и к БД.
← →
YuRock (2004-01-06 10:10) [7]> Johnmen © (06.01.04 10:01) [5]
Вы имеете в виду что-то вроде
SELECT A1.TABLE1.FIELD1, A2.TABLE2.FIELD1 FROM A1.TABLE1, A2.TABLE2
где A1 и A2 - алиасы 2-х открытых баз?
Можно рабочий пример привести? Пожалуйста
← →
YuRock (2004-01-06 10:14) [8]> elkova (06.01.04 10:09) [6]
А можно, конечно, работать не через запросы (просто используя ,бегая по таблицам через First/Next/Eof).
← →
YuRock (2004-01-06 10:15) [9]> YuRock © (06.01.04 10:14) [8]
Извиняюсь, belkova, конечно.
← →
belkova (2004-01-06 10:17) [10]А насколько это сильно затормозит работу?
← →
Johnmen (2004-01-06 10:19) [11]>belkova (06.01.04 10:09)
Чем вызвана необходимость создания неких локальных табл. ?
Вот главный вопрос...
>YuRock © (06.01.04 10:10)
Пожалуйста.
SELECT U.*
FROM ":MONITORS:NLS" N, ":DWH:OLAP_UPE" U
WHERE U.SC_CODE = N.COD_SCENARIO
ORDER BY U.SC_CODE
псевдонимы MONITORS и DWH
← →
belkova (2004-01-06 10:22) [12]Требуется оформить заказ, до того как эти данные будут сохранены требуется куда-то их заносить. Для этого и нужны локальные таблицы.
← →
Johnmen (2004-01-06 10:24) [13]По-моему, ты недостаточно представляешь принципы работы с БД. И такие вещи, как кеширование, транзакционный механизм и т.п.
..................
← →
belkova (2004-01-06 10:26) [14]Если можно поподробнее.
← →
YuRock (2004-01-06 10:34) [15]> Johnmen © (06.01.04 10:19) [11]
Спасибо, конечно. Но что такое псевдонимы?
← →
YuRock (2004-01-06 10:42) [16]...
Это не "DatabaseName" в Object Inspector ?
← →
Johnmen (2004-01-06 10:55) [17]>YuRock ©
Псевдонимы - это бде-шные псевдонимы. Они же алиасы.
← →
Johnmen (2004-01-06 10:59) [18]>belkova (06.01.04 10:26) [14]
>Если можно поподробнее.
Хм... Изложить содержимое какой-либо книги по этой теме ?
:)))
← →
YuRock (2004-01-06 10:59) [19]Ну я пробовал так. Не работает: Dynamic SQL Error in line... Unknown symbol ":MyBase:Table1"
(Алиас MyBase есть (база открыта), таблица Table1 тоже есть)
← →
YuRock (2004-01-06 11:01) [20]...
Я пробовал с помощью TQuery. А она же жестко привязывается к базе (или к алиасу - одному!). Может, надо как-то по другому?
← →
Danilka (2004-01-06 11:03) [21][14] belkova (06.01.04 10:26)
Поподробнее, для этого книги всякие есть, или хотя-бы статьи.
Заносить данные спокойно можно сразу в базу.
Но вот видны они остальным клиентам будут только после удачного завершении транзакции (COMMIT), хочется тебе того или нет. :))
Если-же ты завершишь транзакцию откатом (ROLLBACK), то про все изменения данных, которые ты делала в базе, никто больше никогда и не узнает. :))
Если ты сама не стартовала транзакцию, то все изменения в базе будут проходить в рамках неявной транзакции, в любом случае, пока она не завершится по commit, данные не будут доступны другим.
← →
belkova (2004-01-06 11:07) [22]Спасибо.
← →
YuRock (2004-01-06 11:09) [23]> Johnmen © [17]
Ну скажите, пожалуйста, что я не так делаю?! Интересно, же.
← →
Johnmen (2004-01-06 11:25) [24]>YuRock © (06.01.04 11:09)
Ну не знаю я, что у тебя не так...
Попробуй по-простому. Просто в дизайне. Кидаешь TQuery. Прописываешь запрос. Выставляешь Active в True.
Все должно работать ! В зависимости от типов БД, может спросит имя/пароль...
← →
YuRock (2004-01-06 13:36) [25]Да я и так и так уже пробовал. Непонятно...
← →
YuRock (2004-01-06 13:59) [26]Круто! Заработало! Просто не надо было указывать (надо было убрать :)) указание бызы данных у Query.
Спасибо Johnmen"у.
← →
keymaster (2004-01-06 16:52) [27]А если на машине нет BDE?
Как тогда достать данные из двух gdb одним запросом?
Не пользуясь алиасами...
← →
Vlad (2004-01-06 17:00) [28]http://www.ibase.ru/devinfo/ibfaq.htm#1.34
← →
gyGYgy (2004-01-06 17:25) [29]http://delphimaster.net/view/3-1073395247/
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.008 c