-
Доброе время суток, форумчане. Подскажите, пожалуйста: как осуществить распределенный запрос к нескольким БД? (вот например, есть компонент в delphi, ADOConnection1, он соединен у меня с БД, на этой же машине, есть также TADOQuery, в котором я пишу запрос к таблице в этой БД – с этим понятно. Вопрос: а если запрос происходит в две таблицы, которые находятся в разных БД, как это реализовать?
или дайте ссылочку
Платформа используется - MySQL.
Спасибо
-
>KBO78 (26.03.15 02:31) в вашем случае, надо положить на форму ещё один ADOConnection и ADOQuery
-
предвосхищая следующий вопрос, почитайте про TClientDataset
-
>Кщд (26.03.15 08:06) да, да я это конечно сделал первым делом (с ADOConnection и ADOQuery),
вот например запрос: "SELECT * FROM detail LEFT JOIN provider ON detail.provider_id = provider.id" объединяет запрос с двух таблиц в одной БД.
а у меня 2 БД, "depositary" и "company" с соотрветствующими таблицами.
Если я правильно Вас понял, то компонент "TClientDataset", как раз этим и занимается
-
> Платформа используется - MySQL.
Houston, we have a problem
-
Да, платформа - MySQL, а в чем проблема, подскажите...
-
-
>>Плохиш
а причем тут "CROSS JOIN", насколько я понимаю это объединение нескольких таблиц в одну, только из одной БД, а у меня несколько БД
-
> насколько я понимаю это объединение нескольких таблиц в одну
Неправильно понимаешь. Не таблиц, а "источников данных", каковыми может выступать много чего всякого. Таблица, view, хранимая процедура, подзапрос и т.д.
> только из одной БД
не обязательно.
-
Согласен, но вопрос остается, тогда мне нужно получается, кидать на форму два "ADOConnection1", которые подключены к каждой БД на каждая на отдельном сервере, TADOQuery - останется одно ...- ересь какая-то.
Как правильно?
-
> Как правильно?
Твои вопросы выглядят примерно так: "Мне нужно сделать ремонт. Что нужно?" Ремонт чего? Книги? Дома? Комнаты? Автомобиля? Если комнаты, то какой ремонт? Капитальный? Косметический? А стены какие? Кирпичные? Бетонные? Несущие? А метраж? А что с электропроводкой и полом? Сформулируй чётко задачу. Представь, что ты преподаватель и тупому студенту объясняешь, что от него требуется. Поскольку ты преподаватель, то ты умеешь чётко излагать свои мысли, причём не на жаргоне. А поскольку студент тупой, то расписываешь задачу так, чтобы даже он всё понял. После этого тебе, возможно, помогут. Без - будет никому не нужное вангование, стёб, а возможно и сага про XYZ ( http://www.gunsmoker.ru/2008/10/x-y-z.html )
-
> Как правильно?
Если сегодня, то сегодня правильно "Иран", а не "Ирак"
-
либо несколько коннекшенов плюс склеивание нескольких роусетов в адодатасете либо ликовать сервера и лепить юнионы либо трехзвенка, апп сервер которой умеет первый пункт. либо асинхронный распределенный запрос на все сервера со сборкой результатов по мере их поступления (суть самопальный и кастомизированный пункт три)
-
извиняюсь, конкретизирую, итак, у меня есть платформа для распределенной базы данных (РБД) (я взял стратегию расчлененной РБД) - на МySQL. Я создал 3 БД (с одной таблицей в каждой из них), потом эти БД я раскидаю по разным виртуальным ПК. С конкретной БД, я умею "общаться" при помощи (ADOConnection и ADOQuery). Я хочу научиться делать распределенные запросы в РБД. Чтобы разнеся в дальнейшем эти БД по серверам, у меня не было проблем, с работой с данными Я почитал http://www.osp.ru/dbms/1995/03/13031428/, но там общие слова, мне нужно конкретно. Помогите пожалуйста
-
конкретно, какие учавствуют в распределении запросов, и что для этого необходимо?
-
в общем рано тебе еще.
-
а по ссылке там не прост общие слова, там ерунда написана и много буков.
когда мне потребовалось (прозрачно для клиента) получить данные с переменного количества однородных источников, я просто взял и за неделю нарисовал это.
а чел там всерьез и с умным видом рассуждает, что если есть "select * from table", но таблица эта на двух серверах, то какую же из них тянуть на соседний сервер чтобы типо оптимально было. ну и потом чтобы нахерачить юнион на оригинальную и реплицированную.
-
все пропало... :-(
-
Статья - блеск. Отдельно порадовали картинки из давно забытого windows 3.1 и восторженный рассказ про ODBC.
-
ну а есть конкретные шаги как это все реализовать?
-
надо съесть три собаки и двух щщенков. после этого придет озарение и понимание что коробочная система, которая позволит выполнить "select * from table" /* и далеко не только такой тупой */ на пятнадцати разных серверах, два из которых мускулы, два ораклы, три mssql а остальные fb - умещается на одной трехдюймовке в десяти копиях.
-
> ну а есть конкретные шаги как это все реализовать?
Ты не понимаешь масштаб бедствия. Срочно бери другую тему для курсача. Хотя, в [12] основные варианты расписаны.
-
>Ega23 © (26.03.15 22:59) [18] >Статья - блеск. >и восторженный рассказ про ODBC. так 95-ый год же - в то время ODBC вполне себе ещё молод, упруг и горяч
-
предложение взять базу аксесс, создать в ней 2 линка к 2м базам mysql и обойтись одним конектом и запросом. ... понятно в общем.
а mysql столько хвалят, что не ожидал от него не умения "кросджойна".
-
> так 95-ый год же - в то время ODBC вполне себе ещё молод, упруг и горяч
Я в том плане, что слезу ностальгическую пустил.
-
> KBO78 (26.03.15 18:18) [7] > >>Плохиша причем тут
хоть одну ссылку из найденного соизволил прочитать? нифига не понял? найми программиста!
PS. в первых же двух ссылках дан ответ на твой вопрос "Как осуществить распределенный запрос к нескольким БД?"
|