Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.02;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.028 c
6-2266
UPR
2003-11-27 02:50
2004.02.02
Как в своем WebBrowser e отключить показ рисунков


1-2197
snake1977
2004-01-20 15:09
2004.02.02
TDataBase в DLL


1-2172
WG
2004-01-20 09:59
2004.02.02
Как заставить элементы изменять размер вместе с формой ?


14-2356
Нурик
2004-01-10 08:26
2004.02.02
Кто нибудь использует Opera???


14-2334
Qwet
2004-01-10 20:49
2004.02.02
Перезагрузка Windows Xp