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

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Mechanic
Сообщения: 6
Зарегистрирован: 23 авг 2006, 17:00

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

Сообщение Mechanic » 23 авг 2006, 17:03

Всем привет!

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


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

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 23 авг 2006, 17:21

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

Mechanic
Сообщения: 6
Зарегистрирован: 23 авг 2006, 17:00

Сообщение Mechanic » 23 авг 2006, 17:29

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

Mechanic
Сообщения: 6
Зарегистрирован: 23 авг 2006, 17:00

Сообщение Mechanic » 23 авг 2006, 19:14

А не подскажете, провайдер для firebird под mssql такой:

LCPI OLE DB Provider for InterBase [v2]

???

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

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 24 авг 2006, 10:37

хороший провайдер, фактически единственный, который имеет смысл использовать. насчет "какой-то свой" - не понял вопроса.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 24 авг 2006, 13:26

external table

Коваленко Дмитрий
Сообщения: 2
Зарегистрирован: 07 апр 2005, 21:43

Сообщение Коваленко Дмитрий » 31 авг 2006, 12:19

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

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

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

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

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 31 авг 2006, 12:37

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

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

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

Коваленко Дмитрий
Сообщения: 2
Зарегистрирован: 07 апр 2005, 21:43

Сообщение Коваленко Дмитрий » 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

Ответить