Форум: "Базы";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
ВнизДоступ из БД1 в БД2 одного коннекта Найти похожие ветки
← →
RomanH © (2006-04-14 10:55) [0]Добрый день.Имеется подключение к серверу Interbase, где зарегестрированны две БД alias
|
Databases
|
BD1.
table11
BD2.
table21
не могу сообразить как в хранимой процедуре, которая находится в BD1 написать SQL-запрос, чтобы данные из table1 записывались в table2.
делаю так:
insert into "BD2:table21"
select * from table11 where Field=0
← →
sniknik © (2006-04-14 11:08) [1]IB гетерогенные запросы вроде бы не поддерживает (ранние версии с теми которыми сталкивался уж точно, 7,5 не в курсе), т.что в хранимой процедуре это не пройдет.
а то что ты делаеш это использование "гетерогенности" на уровне BDE, т.е. не в сервере а уже на клиенте. (от BDE в принципе лучше бы отказаться)
имхо. могу ошибиться (процентов 5% даю что ошибся ;о))).
← →
Johnmen © (2006-04-14 11:12) [2]Считай, что никак.
Если не хочешь считать, то пиши свою UDF, которая будет коннектиться ко второй БД и возвращать необходимые данные...
А то, что ты привёл, это чистое БДЕ. К тому же с ошибками написал...
← →
RomanH © (2006-04-14 11:37) [3]Вопрос, а если table21 будет находится в BD1 .Я создаю нужную хранимую прцедуру, записываю данные из table11 в Table21, при помощи ее. А затем можно будет извлечь table21 в BD2. Существуют какие нибудь методы.
← →
Sergey13 © (2006-04-14 11:40) [4]2[3] RomanH © (14.04.06 11:37)
Я сам не пробовал, но вроде можно попробовать с внешними таблицами, когда Table21 будет в обеих базах.
← →
ANB © (2006-04-14 11:48) [5]
> RomanH © (14.04.06 10:55)
IB - не оракл.
Сделай 2 коннекта и перегони таблицу из базы в базу через клиента.
Иногда - самое простое решение.
← →
sniknik © (2006-04-14 11:53) [6]> IB - не оракл.
также не mssql не access и даже не dbase... при чем тут вообще оракл?
← →
Виталий Панасенко (2006-04-14 12:04) [7]Вообще-то, что-то подобное возможно.. Т.к. IB(FB ?) поддерживает двухфазный коммит - подтверждаются транзакции на разных серверах. т.е. можно обращатся к нескольким серверам одновременно. В IBConsole даже есть(давно смотрел на консоль) возможность работы с транзакциямиями "in limbo", "подвисших". Определить, что с ними делать:подтверждать/откатывать
← →
Johnmen © (2006-04-14 12:09) [8]
> Виталий Панасенко (14.04.06 12:04) [7]
Это несколько из другой оперы (не путать с Opera :))
← →
Desdechado © (2006-04-14 12:19) [9]Sergey13 © (14.04.06 11:40) [4]
Это решение рабочее, нужно только точно знать, что во второй БД EXTERNAL TABLE никто не юзал, а то сервер заблокирует доступ к ней извне.
Автору
Что за задача такая? Может, можно обойтись чем-то попроще?
Johnmen © (14.04.06 11:12) [2]
> пиши свою UDF, которая будет коннектиться ко второй БД
Ой, зря ты такое сказал. Можно, конечно, попробовать. Но ведь UDF предназначены для очень быстрых операций, а не для взаимодействия с другими БД. А вдруг кто-то туда еще интерфейсные вещи вставит? Можно ведь физически. Только серверу больно будет....
← →
Виталий Панасенко (2006-04-14 12:22) [10]
> Johnmen © (14.04.06 12:09) [8]
>
> > Виталий Панасенко (14.04.06 12:04) [7]
>
>
> Это несколько из другой оперы (не путать с Opera :))
Не спорю, может из другой. Помню, был пример для FIBPlus. Но подключений было 2
← →
Виталий Панасенко (2006-04-14 12:29) [11]http://www.sql.ru/forum/actualthread.aspx?tid=182592
← →
Johnmen © (2006-04-14 12:42) [12]
> Desdechado © (14.04.06 12:19) [9]
> Ой, зря ты такое сказал....
А это не я сказал, а Кузьменко. На своём ibase.ru.
← →
RomanH © (2006-04-14 12:48) [13]
> Desdechado ©
На удаленой базе находится БД1(Table1.gdb) где хранятся данные , существует необходимость иногда реплицировать эту БД1. Для того чтобы доставить измененые или добавленные данные из БД1 я хочу использовать так называемую транспортировочную таблицу TransportTable1.gdb, что бы всю table1.gdb не везти.
← →
Johnmen © (2006-04-14 12:58) [14]
> RomanH © (14.04.06 12:48) [13]
Мой тебе совет - ты сначала с терминологией разберись. А потом и вопросы можно задавать.
← →
RomanH © (2006-04-14 13:03) [15]
> Johnmen ©
Хорошо послушаюсь вашему совету.Я просто не знал что можно сделать как посоветовал ANB.
← →
RomanH © (2006-04-14 13:17) [16]Как можно когда два разных IBDataSet используют разные IBTransaction, перекинуть данные из одного IBDataSet в другой IBDataSet.А то что я пока придумал не привлекательно
IBDataSet.Open;
while not IBDataSet.EOF do
begin
IBDataSet.FieldValue["AAA"]:=IBDataSet1.FieldValue["AAA"]
.................
.................
IBDataSet.Next;
end
← →
Sergey13 © (2006-04-14 13:52) [17]2[16] RomanH © (14.04.06 13:17)
>А то что я пока придумал не привлекательно
Тебе шашечки или ехать?
(с) старый анекдот
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.044 c