Форум: "Потрепаться";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
ВнизFirebird работа с двумя базами Найти похожие ветки
← →
Труп Васи Доброго © (2004-08-26 15:56) [0]Вопрос вот в чём: надо сделать запрос (хота бы select) к двум таблицам, находящимся в разных базах. Запрос должен выполняться из хранимой процедуры в одной из баз. Возможно ли это????
← →
Игорь Шевченко © (2004-08-26 15:57) [1]
> Возможно ли это????
Скорее всего, нет. За дополнительной информацией на www.ibase.ru
← →
Труп Васи Доброго © (2004-08-26 16:04) [2]
> Скорее всего, нет.
Это твоё мнение, или точно (в смысле про это ты слышал)???
> За дополнительной информацией на www.ibase.ru
Да там как то туго с информацией :(
← →
DSKalugin © (2004-08-26 16:07) [3]а не проще ли слить 2е базы в одну и не морочить голову?
← →
Труп Васи Доброго © (2004-08-26 16:10) [4]
> а не проще ли слить 2е базы в одну и не морочить голову?
Нет, не проще! Зачем мешать мух с котлетами??? В обеих базах есть одинаковая таблица, вот и хотелось бы держать её только в одной базе, а запрос делать из другой.
← →
jack128 © (2004-08-26 16:11) [5]Труп Васи Доброго © (26.08.04 16:04) [2]
Это твоё мнение, или точно (в смысле про это ты слышал)???
это абсолютно точно. IB не поддерживает запросы к нескольким базам адновременно(гетерошенные запросы..Так что ли называется?)
> Да там как то туго с информацией :(
Не смеши, пожалуйста. На ibase есть практически вся необходимая информация про IB + ссылки на доку. Больше нечего не надо..
← →
Игорь Шевченко © (2004-08-26 16:12) [6]Труп Васи Доброго © (26.08.04 16:04) [2]
> Это твоё мнение, или точно (в смысле про это ты слышал)???
Скажем так - я не видел документированных способо реализации таких запросов. Может быть, конкретно в Firebird что-то и придумали, не знаю. Потому и отсылаю на сайт, там есть раздел "для разработчика", обычно там полезная информация.
← →
Труп Васи Доброго © (2004-08-26 16:18) [7]
> это абсолютно точно.
Я спрашиваю потому, что в IBExperte при создании таблицы есть строка External file. Вот и размечтался!
← →
Piter © (2004-08-26 16:28) [8]Труп Васи Доброго © (26.08.04 16:10) [4]
Нет, не проще! Зачем мешать мух с котлетами???
если в одном запросе участвуют сразу две базы данных... не очевидно ли, что эти базы служат одной цели, одной программе и как-то переплетены (иначе и быть не может, раз в одном запросе участвуют). Я могу понять если против того, чтобы не вносить все поля в одну ТАБЛИЦУ. Чтобы там не дублировать записи... ну вообще много причин. Но вот раносить именно по разным базам - это имхо приложения, которые вообще не должны знать друг о друге. Имхо.
← →
Труп Васи Доброго © (2004-08-26 16:42) [9]
> Piter © (26.08.04 16:28) [8]
Какие поля??? какие записи???
Ты наверное не понял чё надо.
Пример: есть база данных автомобилистов, в ней таблица людей и таблица автомобилей. есть база данных автосервиса, в ней таблица автомобилей и допустим таблица замены покрышек на этих автомобилях.
Не хочу держать две одинаковые таблицы с автомобилями в разных базах, хочу чтобы она была толькл в базе автомобилистов, а из автосервиса к ней запросы посылались. вот.
← →
Игорь Шевченко © (2004-08-26 16:45) [10]
> Я спрашиваю потому, что в IBExperte при создании таблицы
> есть строка External file. Вот и размечтался!
External file - это не другая база. Это просто файл, преимущественно, текстовый, доступ без всяких индексов (опять же, насколько я помню)
← →
jack128 © (2004-08-26 16:52) [11]Игорь Шевченко © (26.08.04 16:45) [10]
Это просто файл, преимущественно, текстовый
AFAIK - типизированный..
> база данных автомобилистов, в ней таблица людей и
> таблица автомобилей. есть база данных автосервиса
если все это используется вместе, то нужно просто в одну базу вс данные залить и не париться..
← →
Труп Васи Доброго © (2004-08-26 16:59) [12]
> если все это используется вместе, то нужно просто в одну
> базу вс данные залить и не париться..
Блин, не ну чёго-же так туго проходит?! Я же говорю например!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Меня не интересует что можно вместе слить, меня интересует запрос из одной базы в другую.
← →
Игорь Шевченко © (2004-08-26 17:21) [13]
> меня интересует запрос из одной базы в другую.
За это время уже можно было несколько раз сходить на ibase.ru и поискать в Яндексе. Значит не сильно интересует или просто потрепаться хочется.
← →
Piter © (2004-08-26 17:32) [14]Тебе уже вроде ответили, что нельзя? Или ты не заметил?
А теперь тебе говорят о том, как сделать ПРАВИЛЬНО. Не хочешь - не надо. Нам то что?
← →
Анонимщик © (2004-08-26 17:49) [15]На forums.demo.ru есть конференция epsylon.public.interbase.
Ты бы лучше туда спрашивал - сразу все расскажут.
← →
Rule © (2004-08-26 17:57) [16]Категорически сделать так нельзя, тем более из хранимых процедур, можно сделать распределенный запрос только через BDE к интребейзу и то не средствами интербейза а благодряря локал SQL BDEшному, как это сделать лежит на том же ibase.ru
если ты такой ленивый что не можешь найти на тебе ссылку:
http://ibase.ru/devinfo/bde.htm
предпоследняя глава
там и написано все доходчиво что и как и почему ..., а если ты допустил ситуацию чтоб разнести данные по двум базам, то тебе надо ещё почитать учебник по организации БД, есть пару штук на сайте Подгоретского
podgoretsky.com
← →
Анонимщик © (2004-08-26 17:59) [17]Rule ©
А вот и нифига. В базе данных должна быть только одна таблица, понятно?
← →
Rule © (2004-08-26 18:01) [18]Анонимщик © (26.08.04 17:59) [17]
А вот и нифига. В базе данных должна быть только одна таблица, понятно?
Не понял замечания, в какой базе и для чего ?
← →
Анонимщик © (2004-08-26 18:09) [19]В любой.
← →
Piter © (2004-08-26 18:12) [20]Анонимщик © (26.08.04 18:09) [19]
В любой.
?! :)))
← →
Piter © (2004-08-26 18:13) [21]А это интересная точка зрения - что в одной базе должна быть только одна таблица :)))
← →
Игорь Шевченко © (2004-08-26 18:13) [22]
> А это интересная точка зрения - что в одной базе должна
> быть только одна таблица :)))
А в этой таблице - одно поле. Символьное. Из одного символа.
← →
Анонимщик © (2004-08-26 18:14) [23]И запись одна.
← →
nikkie © (2004-08-26 18:16) [24]не вижу особых причин против того, чтобы иметь 2 базы.
только почему такое желание работать на уровне sp?
пишешь приложение, где и реализуешь работу с двумя базами.
если так принципиально на уровне бд - можно сделать udf
← →
Piter © (2004-08-26 18:16) [25]Не получится... как тогда создать таблицу то? Ведь по началу там не будет записей... а должна быть одна... это все неспроста...
← →
Piter © (2004-08-26 18:17) [26]nikkie © (26.08.04 18:16) [24]
ну дык человек то хочет в одном запросе обратиться сразу к двум базам...
← →
Игорь Шевченко © (2004-08-26 18:19) [27]
> если так принципиально на уровне бд - можно сделать udf
С этого места подробнее можно ?
← →
Piter © (2004-08-26 18:21) [28]Чую, сейчас Шевченко докажет Nikkie что тот не прав :)Или наоборот :)
← →
jack128 © (2004-08-26 18:22) [29]
> можно сделать udf
в смысле из удф подключаться к другой базе? Что то как то не очень идея..Как ты себе это представляешь??
← →
nikkie © (2004-08-26 18:40) [30]>Игорь Шевченко
>С этого места подробнее можно ?
>jack128
>Как ты себе это представляешь??
это была гипотетическая идея, я не проверял работоспособность, конечно. а что, у вас сведения, что это невозможно? IB накладывает какие-то ограничения на функциональность udf?
← →
jack128 © (2004-08-26 18:56) [31]
> IB накладывает какие-то ограничения на
> функциональность udf
официально нет. А не официально этого делать очень не рекомендуется(на эпсилоновской конфе этот вопрос поднимался в свое время, врооде какие то глюки вылазили.. точно уже не помню, но то что такие лудше не делать - в память отлажилось).
И с производительностью наверника будут проблемы (если каждый раз при вызове удф открывать коннект и закрыть его, то сам понимаешь..)
А если например написать дополнительно пару udf OpenConnect/CloseConnect, то а) придется отказаться от компонентов - писать все на апи. б) вызвать эти udf придется с клиента, а тогда вообще теряется смысл выноса всей этой логики на сервер..
← →
Desdechado © (2004-08-26 21:32) [32]1. через UDF, имхо, не стоит. Хотя бы потому, что они рассчитаны на малое время выполнения. А подключение к какой-то БД, обработка ошибок при этом, отключение и прочее - слишком ресурсоемко.
2. в разных БД хранить связанные данные неверно хотя бы потому, что не поддержать ссылочной реляционной целостности. А если без нее, то никакой нормализацией пахнуть не будет. А это уже будет не БД, а свалка.
3. можно попробовать через External Tables. При этом хитро замутить так - в одной БД создается такая таблица и заполняется из главной. В другой тоже создается с аналогичными полями и, самое главное, направленная на ТОТ ЖЕ внешний файл. И во второй же можно из ХП ее обрабатывать. Не уверен, что такой вариант работоспособен (по крайней мере, если сервер открыл обе базы разом). Но даже если получится, все равно изврат. См. пункт 2.
← →
Zacho © (2004-08-26 21:49) [33]Может ему репликация нужна ? Так статьи на эту тему есть на www.ibase.ru
← →
megabyte © (2004-08-26 23:42) [34]
> В любой.
> А в этой таблице - одно поле. Символьное. Из одного символа.
> И запись одна.
Я плакаль... :)
Мечтаю об этом.
← →
nikkie © (2004-08-27 00:38) [35]хорошо, убедили, не стоит через udf.
но общее отторжение идеи работы с двумя базами мне все-таки не понятно. упоминание машин напомнило мне про известную технологию поиска угнанных машин. недавно показывали по телику мужика из Самары, кажется - он способен обнаружить тысячи угнанных машин, не выходя из дома, сличая несколько баз - базу vin-номеров от производителей, базу машин, числящихся в угоне и базу зарегистрированных машин по России. техника простая, но использовать ее те, кто должен был бы заниматься поиском угнанных машин, не хотят - слишком многие гаишники попадут под статью.
так вот. почему не может быть 2 или более баз от разных систем или поставщиков информации, которые надо сопрячь? просто не на уровне хранимых процедур это надо делать.
что-то автор пропал куда-то. я его тут защищаю, а может зря? может с этими базами никто кроме одной-единственной его программы не работает?
← →
jack128 © (2004-08-27 00:53) [36]nikkie © (27.08.04 0:38) [35]
но общее отторжение идеи работы с двумя базами мне все-таки не понятно.
нету полного отторжения. Я, когда говорил о необходимости объединения баз исходил из того примера с автомодилистами. Просто слова "пример" не заметил..Твой рассказ - вот пример когда можно и нужно использовать несколько БД. Понятно, что объединить базу гаи"цев и автопроизводителей нереально..
← →
Rule © (2004-08-27 08:43) [37]А где автор то собственно, вот я не понял ...
тут дебаты а он уплыл, значит надо оно ему ...
← →
Труп Васи Доброго © (2004-08-27 14:44) [38]
> Rule © (27.08.04 08:43) [37]
У автора инет и комп только на работе, а она в 17:00 заканчивается.
Вот перечитал я все заметания и предложения, пока выхода из тупика не нашёл.
Неужели никто не думал о том, что это надо (работать с двумя базами)!?!?!?
Странно как то!
← →
Труп Васи Доброго © (2004-08-27 14:53) [39]Может какие идеи у кого появились как выйти из этой ситуации, мыслишки мож какие?
← →
Danilka © (2004-08-27 15:28) [40][39] Труп Васи Доброго © (27.08.04 14:53)
Перейти на СУБД, которая позволяет так делать :)
А вообще, см [32] Desdechado © (26.08.04 21:32) п.2
:))
[35] nikkie © (27.08.04 00:38)
> недавно показывали по телику мужика из Самары, кажется -
> он способен обнаружить тысячи угнанных машин, не выходя
> из дома, сличая несколько баз - базу vin-номеров от производителей,
> базу машин, числящихся в угоне и базу зарегистрированных
> машин по России.
Ты уверен, что у него не в одной базе все? Самое простое, сделать экспорт в одну базу необходимых табличек, и уже по ним искать.
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.037 c