Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

Доступ из БД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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.055 c
2-1147673825
ANB
2006-05-15 10:17
2006.06.04
Можно ли использовать в IdPOP3 идентификатор писем Message-ID ?


2-1147856225
VitV
2006-05-17 12:57
2006.06.04
DBLookupComboBox1-отображение текста.


4-1142001409
pirate
2006-03-10 17:36
2006.06.04
Работа с буфером обмена


1-1145988512
gear
2006-04-25 22:08
2006.06.04
Как примагнитить одну форму к другой?


15-1146992019
ArtemESC
2006-05-07 12:53
2006.06.04
Одним сравнением проверить корректность даты..