Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Проблема в одноврем-ой работе с 2-мя БД InterBase


Автор: Delphist 19.10.2005, 18:09
Есть две БД под Firebird:db1.gdb и db2.gdb в db1.gdb есть табличка table1_db1
с полями field1_tbl1 и field2_tbl1. Нужно данные из этих полей загнать в db2.gdb
в таблицу table2_db2 в поля field1_tbl2 и field2_tbl2. Как это сделать.

Автор: Alex 20.10.2005, 00:52
Подключиться к одной и ко второй БД с помощью разных компонентов и перегнать данные

Автор: Delphist 20.10.2005, 16:26
Цитата(Alex @ 20.10.2005, 00:52)
Подключиться к одной и ко второй БД с помощью разных компонентов и перегнать данные

Пример не мог бы привести

Автор: Alex 20.10.2005, 16:30
Цитата(Delphist @ 20.10.2005, 17:26)
Пример не мог бы привести

Какие компоненты используешь для работы?
Добавлено @ 16:32
а еще лучше пришли два своих файла базы и напишу пример, что бы мне эти базы для теста сейчас не создавать

Автор: Delphist 20.10.2005, 16:51
Цитата(Alex @ 20.10.2005, 16:30)

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

Использую FIBPlus. Файл с БД прилагаю (БД сделаны под FireBird 1.0 - т.е. без проблем должны работать на любой версии InterBase).

Автор: Alex 20.10.2005, 20:47
Если что-то не понятно - спрашивай

Автор: Delphist 21.10.2005, 12:28
Цитата(Alex @ 20.10.2005, 20:47)
Если что-то не понятно - спрашивай

У меня нет класса TpFIBDatabase и TpFIBTransaction есть только TFIBDatabase и TFIBTransaction
поделись своими. Они лучше обычного TFIBDatabase и TFIBTransaction?

Автор: Alex 21.10.2005, 21:32
Цитата(Delphist @ 21.10.2005, 13:28)
У меня нет класса TpFIBDatabase и TpFIBTransaction есть только TFIBDatabase и TFIBTransaction
поделись своими. Они лучше обычного TFIBDatabase и TFIBTransaction?

У меня версия 6.25 и это ее стандартные классы

Автор: Delphist 25.10.2005, 17:47
Цитата(Alex @ 21.10.2005, 21:32)
Цитата(Delphist @ 21.10.2005, 13:28)
У меня нет класса TpFIBDatabase и TpFIBTransaction есть только TFIBDatabase и TFIBTransaction
поделись своими. Они лучше обычного TFIBDatabase и TFIBTransaction?

У меня версия 6.25 и это ее стандартные классы

Поделись ими пожалуйста.

P.S. Кидай на мой e-mail: delphi71@yandex.ru

Автор: Alex 25.10.2005, 19:00
Цитата(Delphist @ 25.10.2005, 18:47)
Поделись ими пожалуйста.

P.S. Кидай на мой e-mail: delphi71@yandex.ru

Я конечно все понимаю, но библиотека вроде бы как платная я покупал лицензию на одного человека smile

Автор: YurikGL 25.10.2005, 20:05
Цитата
Есть две БД под Firebird:db1.gdb и db2.gdb в db1.gdb есть табличка table1_db1
с полями field1_tbl1 и field2_tbl1. Нужно данные из этих полей загнать в db2.gdb
в таблицу table2_db2 в поля field1_tbl2 и field2_tbl2. Как это сделать.



кидаешь на форму два коннекшена, две транзакции и два датасета.
Цепляешь первый к первому и второй ко второму транзакции к коннекшену и т.д. Первый коннекш настраиваешь на первую базу а датасет на table1_db1 вторую на вторую базу и таблицу соответсвенно

код пишу прямо здесь - за ошибки извиняйте если что напутал - исправить будет легко

самый тупой вариант
dataset1.first
repeat
dataset2.insert;
dataset2.fieldbaname('field1_tbl2').value:=dataset1.fieldbaname('field1_tbl1').value
dataset2.fieldbaname('field2_tbl2').value:=dataset1.fieldbaname('field2_tbl1').value
dataset2.post
dataset1.next
until dataset1.eof;

Вариант похитрее и ошибок у меня может быть больше:
Ко второму коннекшену цепляем IBSQL2 тогда

dataset1.first
repeat
IBSQL2.sql.text:='Insert into table2_db2 (field1_tbl2, field2_tbl2) values ('+dataset1.fieldbaname('field1_tbl1').asstring+','+dataset1.fieldbaname('field1_tbl1).asstring+')';
dataset1.next
until dataset1.eof;
Во втором случае, если значения полей в датасете1 строковые то нужно будет сделать типа


IBSQL2.sql.text:='Insert into table2_db2 (field1_tbl2, field2_tbl2) values ('+#39+dataset1.fieldbaname('field1_tbl1').asstring+#39+','+#39+dataset1.fieldbaname('field1_tbl2).asstring+#39+')';

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)