|  | 
| 
Данные из двух баз данных | |||
|---|---|---|---|
| #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&fpage=163&tid=1606565]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 12ms | 
| check forum access: | 3ms | 
| check topic access: | 3ms | 
| track hit: | 33ms | 
| get topic data: | 11ms | 
| get forum data: | 2ms | 
| get page messages: | 48ms | 
| get tp. blocked users: | 2ms | 
| others: | 12ms | 
| total: | 135ms | 

| 0 / 0 | 
