Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.077 c
2-1148051126
Мурзилка
2006-05-19 19:05
2006.06.04
нажатый shift


6-1138956468
Black Krok
2006-02-03 11:47
2006.06.04
Как БЫСТРО проверить доступность http: IP-адреса в И-нете?


10-1120122297
ingine
2005-06-30 13:04
2006.06.04
закрытие IE


2-1148013655
Мурзилка
2006-05-19 08:40
2006.06.04
Спец. символы


2-1147604100
delphi-oracle
2006-05-14 14:55
2006.06.04
TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский