Два подключения к БД одного пользователя

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

Модератор: kdv

Ответить
zz 5
Сообщения: 32
Зарегистрирован: 02 мар 2006, 10:52

Два подключения к БД одного пользователя

Сообщение zz 5 » 26 фев 2007, 14:57

Добрый день. Ситуация следующая: до сих пор в крупном проекте использовался IBX для доступа к БД (Interbase). В связи с переходом на Firebird было решено постепенно переводить работу на FIBPlus, но столкнулись с одной проблемой. Дело в том, что классы TIBDatabase и TFIBDatabase не являются родственными, следовательно, в качестве значения свойства Database TIBQuery можно указать только TIBDatabase, а для TFIBQuery только TFIBDatabase. Сразу переделать все объекты TIBQuery на TFIBQuery не представляется возможным из-за слишком больших объемов работ, поэтому вопрос следующего характера. Можно ли использовать в программе одновременно два подключения к БД с одними и теми же настройками TFIBDatabase и TIBDatabase (включая имя пользователя) ? Чем это грозит и насколько это вообще допустимо ?

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 26 фев 2007, 15:25

Ничем это не грозит. У меня в одной базе сейчас точно также: в программе два TpFIBDatabase, один атавизм устаревшего кода, другой - из нового... До этого тоже переходил с IBX и FIB+ и также было две компоненты Database. Так что конвертируй код спокойно :).

zz 5
Сообщения: 32
Зарегистрирован: 02 мар 2006, 10:52

Сообщение zz 5 » 26 фев 2007, 15:36

CyberMax, Спасибо, развеяли мои сомнения. :D

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

Сообщение kdv » 26 фев 2007, 15:46

"в связи с чем" решили перейти на FIBPlus? я понимаю, если вы вообще решили с IBX перейти на FIBPlus. Но в посте прозвучала непонятная привязка к "переходу на Firebird".

кроме того,
TIBQuery <> TFIBQuery
TFibQuery это TIBSQL. А как в фибплюсе называется эквивалент IBQuery, я не помню.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 26 фев 2007, 16:09

kdv писал(а):кроме того,
TIBQuery <> TFIBQuery
TFibQuery это TIBSQL. А как в фибплюсе называется эквивалент IBQuery, я не помню.
В Devrace видимо решили не заморачиваться облегчением перехода с BDE, поэтому в FIB+ аналогов TIBTable и TIBQuery просто нет. И слава Богу...

zz 5
Сообщения: 32
Зарегистрирован: 02 мар 2006, 10:52

Сообщение zz 5 » 26 фев 2007, 16:22

kdv, угу, вообще. Но не моментом, а неспеша.

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

Сообщение kdv » 26 фев 2007, 16:31

тогда ладно. а то я думал, еще один миф (хотя вроде уже гуляет такое) - IBX для InterBase, а FIBlus - для Firebird.
пришлось тут
www.ibase.ru/devinfo/ibx.htm
даже красным жирным шрифтом написать...

EvilsInterrupt
Сообщения: 66
Зарегистрирован: 29 авг 2006, 10:00

Сообщение EvilsInterrupt » 26 фев 2007, 18:44

kdv писал(а):www.ibase.ru/devinfo/ibx.htm
В этой статье упоминался: "IBScript", тоже самое но для FIBplus есть?

Мне надо скрипт который создается утилитой IB & FB Development Studio как то выполнить программно.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 27 фев 2007, 08:04

Раз студией сделал, так студией и выполняй. Ну или можешь написать свой парсер - на пару часов работа.

vserd
Сообщения: 10
Зарегистрирован: 31 авг 2006, 17:15

Сообщение vserd » 03 мар 2007, 15:26

Можно ли использовать в программе одновременно два подключения к БД с одними и теми же настройками TFIBDatabase и TIBDatabase (включая имя пользователя) ? Чем это грозит и насколько это вообще допустимо ?
Как-то в сети наткнулся на способ, в котором описывался переход между BDE и IBX, для использования коннекта предлагалось установить коннект, и скопировать Handle в другой компонент хDatabse. Сам не проверял, но похоже что должно работать.

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

Сообщение WildSery » 04 мар 2007, 18:58

Хэндл подключенной к базе Database (BDE) передать в IBDatabase или pFIBDatabase - без проблем, просто присвоением хэндла. Мы так делаем.
В обратную сторону AFAIK нельзя.
Передавать хэндл между IB и FIB базами - тоже без проблем. Он нормально шарится.

Ответить