Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2010, 08:41   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
Смущение Копирование результата запроса с одной базы в другую

Здравствуйте.
Имеется 2 разные базы данных Fire Bird подключенные через разные компоненты pFibDataBase на pFibDataBase настроены разные компоненты pFibQure и pFibDataSet. Необходимо результат следующего запросто скопировать во вторую базу данных
Код запроса
Код:
pFibDataSet.Close;
pFibDataSet.Sqls.SelectSql.Text:='selec * from Nt where Id>2';
pFibDataSet.Open;
Есть вариант организовать цикл который будет перебирать результат выполнения выборки и по одной записи записывать в базу но это уж больно геморно. Может есть какой то более просто способ?
Lokos вне форума Ответить с цитированием
Старый 13.07.2010, 09:05   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Может есть какой то более просто способ?
Насчет FB не знаю, но серьезные тяжелые СУБД просто могут одним запросом перегнать типа:
Код:
insert into База2.Таблица Select * from база.Таблица
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.07.2010, 09:14   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Насчет FB не знаю, но серьезные тяжелые СУБД просто могут одним запросом перегнать типа:
Код:
insert into База2.Таблица Select * from база.Таблица
хм выглядит очень даже замечательно только есть одно но к одному компоненту можно подключить одну базу то есть я не смогу выпонить такой запрос
Код:
pfibQuery.sql.text:=']insert into База2.Таблица Select * from база.Таблица '
потому что pfibquery можно подключить только к одной базе и при выполнении запроса будет ошибка с надписью база 2 не найдена ну или что нибудь в этом духе
Lokos вне форума Ответить с цитированием
Старый 13.07.2010, 09:36   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Значит в цикле позаписно перекачивай
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.07.2010, 12:34   #5
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

в ИБ есть внешние таблицы, все никак не доходили руки попробовать через них такое решать

смысл в следующем - в обоих базах создается таблица и указывается путь к одному внешнему файлу, таблица получится только на чтение и добавление

из одной базы пишешь в эту таблицу, в другой из нее читаешь

так-же можно попробовать решить через УДФ данную проблему
Non est culpa vin, sed culpa bibentis
Korben5E вне форума Ответить с цитированием
Старый 14.07.2010, 07:46   #6
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от Korben5E Посмотреть сообщение
в ИБ есть внешние таблицы, все никак не доходили руки попробовать через них такое решать

смысл в следующем - в обоих базах создается таблица и указывается путь к одному внешнему файлу, таблица получится только на чтение и добавление

из одной базы пишешь в эту таблицу, в другой из нее читаешь

так-же можно попробовать решить через УДФ данную проблему
Если делать через внешнюю таблицу хоть я и не знаю как это то это муторно довольно проще тогда через цикл а что такое УДФ?
Lokos вне форума Ответить с цитированием
Старый 14.07.2010, 08:01   #7
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

Цитата:
Сообщение от Lokos Посмотреть сообщение
Если делать через внешнюю таблицу хоть я и не знаю как это то это муторно довольно проще тогда через цикл а что такое УДФ?
не настолько муторно как кажется - в документации посмотри как создаются таблицы в ИБ, другое дело - не подерутся ли базы за 1 файл.

если не подерутся - то просто 1 база будет писать в это файл, а вторая читать из него.

УДФ - UDF, пользовательские функции которые хранятся в dll и выполняются на сервере.

www.ibase.ru тебе в помощь

блин.. не слежу за развитием firebird
вроде можно сделать копирование в разные базы

вот че наковырял http://www.firebirdsql.su/doku.php?id=execute_statement
пареметр ON EXTERNAL DATA SOURCE

но мне ща лень разбираться - так что разбирайся сам.
Non est culpa vin, sed culpa bibentis

Последний раз редактировалось artemavd; 23.07.2010 в 18:14.
Korben5E вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос значений из одной базы данных в другую mr.D Microsoft Office Excel 3 16.03.2010 21:11
Копирование записей из одной таблицы в другую rockedit БД в Delphi 4 10.12.2009 21:39
Сложное копирование из одной книги в другую kzld Microsoft Office Excel 12 15.07.2009 11:56
Копирование данных из одной таблицы в другую! фЁдОр БД в Delphi 18 06.01.2008 19:27
Копирование таблиц из одной базы в другую KuH БД в Delphi 7 27.09.2007 15:18