|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Вопрос следующий: Есть база данных base1 Есть база данных base2 В первой таблица table1, во второй table2 Вопрос заключается в следующем: необходимо зайти в первую базу данныйх, сделать выборку по определенному полю, затем зайти во вторую и сделать выборку из второй таблицы по данным, полученным из первой. т.е. что то вроде select * from table2 where fieild2 in(select field1 from table1) может можно обращаться как-то через base1.sheme1.table1.... или еще как. Заранее благодарен за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2003, 09:02 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Ну а чем твой вариант не подходит? Как то в другом виде их надо получить? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2003, 11:11 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Подожди, не обратил внимания, что из двух баз надо данные брать. Щас подумаю скажу, а может нет...:) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2003, 11:24 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Может даже как-то можно view одной таблицы( с первой базы данных) поместить в другую базу данных.... Посредством запросов к базе данны. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2003, 09:16 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Что я помню на данный момент по этой теме: 1. Простыми средствами сделать гетерогенный запрос нельзя. Поэтому, если вы разработчик, держите все данные в одной базе. Для распределенной базы пользуйтесь репликацией. 2. В более-менее новых версиях DB2 есть-таки некие средства - см. документацию по ключевым словам "federated databases" (но я не назвал бы их простыми). Это я знаю точно, но не уверен в том, нужен ли Relation Connect (он точно нужен для связи с Oracle и т.п., а вот для другой DB2...). 3. Почитайте также документацию про OLE-функции, возвращающие таблицы. Быть может, вам подойдет именно этот вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2003, 09:55 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
1. Простыми средствами сделать гетерогенный запрос нельзя. Поэтому, если вы разработчик, держите все данные в одной базе. Для распределенной базы пользуйтесь репликацией. * Дело в том, что база была запроектирована до того, как пришел сюда работать. 2. В более-менее новых версиях DB2 есть-таки некие средства - см. документацию по ключевым словам "federated databases" (но я не назвал бы их простыми). Это я знаю точно, но не уверен в том, нужен ли Relation Connect (он точно нужен для связи с Oracle и т.п., а вот для другой DB2...). 3. Почитайте также документацию про OLE-функции, возвращающие таблицы. Быть может, вам подойдет именно этот вариант. * Обязательно посмотрю. Благодарю Вас за ответ. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2003, 10:17 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Есть ублюдочный вариант - работает только под BDE: Создаешь в BDE новую запись на foxpro!!! Простое foxpro не Visual. Открываешь все три базы. Текущую делаешь foxpro и выполняешь select типа: select * from ":DBPO:t_dept" a, ":DBREPORT:t_dept" b where a.id = b.id DBPO и DBREPORT - DB2'шные базы. Синтаксис select - foxpro'шный. Вот такой изврат. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2003, 13:33 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Совсем забыл - схемы указывать нельзя! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2003, 13:34 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Да еще, все что внутри апострофов - регистрозависимо. В качестве схем подставится LOGIN из строки коннекции. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2003, 13:50 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
1) Federated server 3) Скопируй к себе всю таблицу. при этом воспользуйся репликацией. 2) Подконнекться к первой базе, подконнекться ко второй базе, set connection первая база, хапни всю выборку в программу (что у тебя там? может, пара строчек...) set connection вторая база, формируй statement. что-то делаешь, коммит... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2003, 14:03 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
2 Golsa: да, борландовский BDE задуман так, что умеет делать гетерогенные запросы (на своем внутреннем ублюдочном SQL, хуже которого просто ничего нет; даже у MS Access и MySQL диалект лучше), в чем нетрудно убедиться, например, почитав документацию, идущую с Delphi, но причем здесь Foxpro? Насколько я помню, достаточно указать нужные свойства в источниках данных ("не передавать SQL на сервер, а выполнять самому"). Если на то пошло, то лучше (чем работать с BDE) взять MS Access, присоединить таблицы (а то и просто скопировать себе данные) и с этим работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2003, 23:46 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
2 Victor Metelica В FoxPro нет сервера. BDE сам иммитирует работу selecta примерно так как описано в пункте 2 последнего сообщения NewYear. Еще раз повторюсь - это изврат. В DB2 WorkGroup Edition нет возможности без дополнительных DB2'шных прилад делать выборку одним select из разных баз, а также организовать репликацию. Так что решение - через копирование (import-export или собственным клиентом) таблицы вполне приемлемо. Через MS Access - тоже интересный вариант. Пусть ^ozzy^ выбирает ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2003, 06:03 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Всем спасибо за подробные ответы. Сделаю через import/export и поменяю аплоадер для работы с новой базой. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2003, 11:14 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
В DB2 WorkGroup Edition нет возможности без дополнительных DB2'шных прилад делать выборку одним select из разных баз, а также организовать репликацию. гы. поставь EE. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2003, 13:30 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
FoxPro здесь, тем не менее, вообще не причем. Какие проблемы у WE с репликацией? Я давно ею не интересовался, но, по крайней мере, вижу, что у 8.1 утилиты (их имя SQLLIB\BIN\asn*.exe) на месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2003, 14:28 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
гы. значит, вообще счастье. я не использую WE. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2003, 14:48 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
я бы так и сделал, что настроил репликацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2003, 14:51 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Между прочим, и federated на 8.1 workgroup edition работают. Сейчас проверил. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2003, 15:18 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
Дело было так: DB2 8.1 WSE машина называется MOUSE пользователь vvm две базы данных: SAMPLE и DBX. 1. В параметрах СУБД сказал Federated=Да и затем перегрузил СУБД. 2. Подключился к SAMPLE 3. Создал wrapper. CREATE WRAPPER DRDA OPTIONS (DB2_FENCED 'N') 4. "Создал" сервер (обозвал его RAT). CREATE SERVER RAT TYPE DB2/UDB VERSION 8.1 WRAPPER DRDA AUTHORIZATION vvm PASSWORD some-pwd OPTIONS ( NODE 'MOUSE', DBNAME 'DBX', FOLD_ID 'U', FOLD_PW 'N', COLLATING_SEQUENCE 'Y' ) 5. Создал отображение пользователей CREATE USER MAPPING FOR vvm SERVER RAT OPTIONS (REMOTE_AUTHID 'VVM', REMOTE_PASSWORD 'some-pwd') 6. Создал в базе данных DBX табличку: CREATE TABLE XXX.YYY ( NNN CHARACTER (10) ) @ 7. Создал в базе SAMPLE "прозвище": CREATE NICKNAME QQQ FOR RAT.XXX.YYY и теперь 8. SELECT * FROM QQQ ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2003, 15:26 |
|
Данные из двух баз данных
|
|||
---|---|---|---|
#18+
да ну его нахрен, сдался этот распределенный запрос. представляешь, залочит сразу две базы. а что если канал между ними плохой? хотя, я не знаю прикладной области. при репликации, конечно, будет кое-какая задержка, но я не думаю, что она так уж актуальна, раз ^ozzy^ решил сделать копию. к тому же, релицировать можно не всю таблицу, а только выборку из нее, т.е. только те данные, которые реально нужны. это можно достичь, если написать view и реплицировать его. да и вообще тут простор для всяческих извращений ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2003, 15:32 |
|
|
start [/forum/topic.php?fid=43&msg=32209307&tid=1606565]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 420ms |
0 / 0 |