-
Если я помещаю на форму 2 компонента pFIBDatabase и подключаюсь к ним, то все нормально. Но как только открываю запросы в обеих базах, так возникает ошибка (... :Transaction is active). У каждого компонента pFIBDataSet свой компонент pFIBTransaction1. Как избавиться от этой ошибки.
-
> свой компонент pFIBTransaction1
точно свой? а номер почему одинаковый?
-
Изучить, что такое и для чего нужны транзакции и как с ними работать.
-
> свой компонент pFIBTransaction1
1 не удалил при копировании из буфера.
Схема, которая используется прекрасно работает с компонентами BDE, а вот с FIBPLUS не работает
-
> прекрасно работает с компонентами BDE
бде создает транзакции неявно
-
имеется
1) pFIBDatabase1, pFIBTransaction1, pFIBDataSet1
2) pFIBDatabase2, pFIBTransaction2, pFIBDataSet2
открываем pFIBDataSet1, полет нормальный, открываем pFIBDataSet2 - ошибка (... :Transaction is active), при закрытии данного приложения выдается ошибка (Runtime error 216 at 00403E22)
-
проверь связки компонентов между собой
есть подозрение, что что-то пересеклось
-
проверял несколько раз все нормально, по одиночки работает все правильно, даже если одну из веток удалить. Если бы были пересечения, то при удалении одной из веток были бы проблемы (по очереди удалял обе ветки).
-
> [7] wipr (10.07.08 22:52)
А сервер случаем не embedded? Вроде у меня как то было нечто подобное.
-
> запросы в обеих базах,
или все-таки таблицах?
-
одна из транзакций (читающая или пишущая) у обеих pFIBDatabase общая.
вот и косяк
-
я установил
1) pFIBDatabase1 (DefaultTransaction - pFIBTransaction_DB1), pFIBTransaction1, pFIBDataSet1
2) pFIBDatabase2 (DefaultTransaction - pFIBTransaction_DB2), pFIBTransaction2, pFIBDataSet2
ошибка осталась
> одна из транзакций (читающая или пишущая) у обеих pFIBDatabase
> общая.
> вот и косяк
я это все понимаю, но как избавиться от косяка? вот вопрос.
-
У датабазы две дефолтных транзакции.
Читающая и пишущая.
По-русски же было написано.
-
Ну я так и делал
1) pFIBDatabase1 (DefaultTransaction - pFIBTransaction_DB1), pFIBTransaction1, pFIBDataSet1
2) pFIBDatabase2 (DefaultTransaction - pFIBTransaction_DB2), pFIBTransaction2, pFIBDataSet2
-
Все оказалось проще. У меня установлена версия 6.8, в данной версии есть такой глюк. В версии 6.8.5 эта ошибка исправлена.
-
pFIBDatabase1 (DefaultTransaction - pFIBTransaction_DB1
а
pFIBDatabase1.DefaultUpdateTransaction где?