Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-1970
Романов Р.В.
2004-01-09 12:01
2004.02.02
Выбор структуры БД


9-1943
RIMMER
2003-07-17 23:32
2004.02.02
DelphiX: DXDraw на полный экран и обратно в runtime


1-2131
NailMan
2004-01-19 15:14
2004.02.02
Перехват EConvertError


6-2251
AlexDBases
2003-11-26 21:27
2004.02.02
HTTP-Proxy Support


3-1991
Yulik
2004-01-08 12:28
2004.02.02
Как выполнить Oracle-package?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский