Страница 1 из 1

Firebird: Нужно скопировать таблицу из одной базы в другую

Добавлено: 23 авг 2006, 17:03
Mechanic
Всем привет!

Такой вопрос... Есть две базы firebird (на одной машине естественно).. Мне нужно скопировать таблицу из одной базы в другую... желательно sql-запросом... На MSSQL я бы использовал что-то вроде
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories


для того чтобы выбрать данные с другого сервера.. а потом бы вставил их в мою таблицу... Если сервер один и тот же, то там вообще нечего делать.

С firebird же не знаю как поступить... вроде задача должна же как-то решаться...

Добавлено: 23 авг 2006, 17:21
kdv
если работаешь в IBExpert, он это умеет. 2 алиаса создал, и все.
если в приложении - то никак. коннект к нужным базам, из одной читаешь, в другую пишешь.

Добавлено: 23 авг 2006, 17:29
Mechanic
kdv писал(а):если в приложении - то никак. коннект к нужным базам, из одной читаешь, в другую пишешь.
жалко

Добавлено: 23 авг 2006, 19:14
Mechanic
А не подскажете, провайдер для firebird под mssql такой:

LCPI OLE DB Provider for InterBase [v2]

???

Или какой-то свой используется?

Добавлено: 24 авг 2006, 10:37
kdv
хороший провайдер, фактически единственный, который имеет смысл использовать. насчет "какой-то свой" - не понял вопроса.

Добавлено: 24 авг 2006, 13:26
Ivan_Pisarevsky
external table

Добавлено: 31 авг 2006, 12:19
Коваленко Дмитрий
kdv писал(а):если в приложении - то никак. коннект к нужным базам, из одной читаешь, в другую пишешь.
Подожди, как это "никак" ? :)

Регистрируешь на MSSQL-е два связанных сервера и вперед :)

http://www.ibprovider.com/rus/examples/example_15.html

Правда я такое копирование сто лет как не тестировал и из программы ниразу не пробовал.

Добавлено: 31 авг 2006, 12:37
WildSery
Автор зажигает.
"Я селектом получаю данные из одной базы, а затем вставляю в другую..."
Вот если бы сразу

Код: Выделить всё

insert into DB2.DESTINATION
  select * from DB1.SOURCE
тогда бы вопрос был обоснованным, а так - какая тебе разница, в какую базу вставлять, если ты уже получил данные?
Стоит обратить внимание на фунцию TFIBQuery.ExecWPS, подходит для таких "переливок" как нельзя лучше.

Добавлено: 31 авг 2006, 13:12
Коваленко Дмитрий
WildSery писал(а):Автор зажигает.
Вот если бы сразу

Код: Выделить всё

insert into DB2.DESTINATION
  select * from DB1.SOURCE
тогда бы вопрос был обоснованным
Нут так вот напрямую, наверное, нельзя. А вот так

Код: Выделить всё

insert into DB2...DESTINATION
select * from DB1...SOURCE
скорее всего, можно :)
WildSery писал(а):Стоит обратить внимание на фунцию TFIBQuery.ExecWPS, подходит для таких "переливок" как нельзя лучше.
Тут я обнаружил, что автор и на RSDN мусорил, поэтому приведу только ссылку

http://www.rsdn.ru/Forum/?mid=2073028