Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TpFibsdatabase и Dll [D7, IB6.x]


Страницы:   1 2

yaric ©   (2003-12-04 18:14:00) 

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

открываю из длл библиотеки форму на котрой лежит
TpFibTransaction, Database передается как параметр из основного приложения. Передача параметров проходит нормально, однако когда
я пытаюсь как то работать через эту БД возникают ошибки при вызове метода TpFibDataset.Open


yaric   (2003-12-08 12:28:00) [1]

Все народ всем спасибо
разобрался
просто надо передавать в библиотеку DBHandle: TISC_DB_HANDLE
и все нормально,
но соединение должно быть уже установленно
а в конце работы приложения вызывать еще одну функцию из библиотеки которая будет рубить коннект


Vlad   (2003-12-05 18:52:00) [2]

Тогда мыслей больше нет.
Если только в вызове процедуры что-то не так, хотя...
Ответь-ка на Johnmen © (05.12.03 09:14) [29]


yaric   (2003-12-05 15:54:00) [3]

Попробовал эффект тотже
то же самое когда пытаюсь передавать в библиотеку и транзакцию


yaric   (2003-12-05 15:53:00) [4]

Попробовал эффект тотже
то же самое когда пытаюсь передавать в библиотеку и транзакцию


Vlad   (2003-12-05 12:14:00) [5]

Возможно переменная temp_dataset объявлена еще где-то, помимо
процедуры TfrmBookOptions.GetCurrRazdStDBInfo
И еще одно маленькое предположение, попробуй вместо
temp_dataset:=TpFibDataSet.Create(self);
написать
temp_dataset:=TpFibDataSet.Create(nil);


yaric   (2003-12-05 11:17:00) [6]

>>Johnmen
Да ты прав транзакция действительно стартует неявно
и как оказывается стартует нормально

Я тут еще потрейсил немного и оказывается бока наступают когда
мы залазим внутрь класса TpFibDataSet. Пока разобраться не могу
может у кого какая идея по этому поводу есть


Johnmen   (2003-12-05 09:14:00) [7]

>Vlad ©

Да, похоже дело не в шаремем...
>где ты пытаешься начать транзакцию ?
Просто она стартует неявно, если указано в опциях фибдатасета poStartTransaction=True...

>yaric

Приведи (еще раз) вызов процедуры из приложения и ее реализацию в длл.


Vlad   (2003-12-04 20:04:00) [8]


> yaric (04.12.03 20:02) [27]

Тогда как вот это понимать ?

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

Еще раз спрашиваю - где ты пытаешься начать транзакцию ?


yaric   (2003-12-04 20:02:00) [9]

Не ну ты же видишь(см.код) что я создаю локальный экземпляр TpFibDataSet
и ни какие BeforeOpen я для него не определяю


Vlad   (2003-12-04 19:59:00) [10]


> yaric (04.12.03 19:55) [25]

Сие означает что у temp_dataset есть событие BeforeOpen и ты его не привел или еще что-то умалчиваешь.


yaric   (2003-12-04 19:55:00) [11]

А когда я метод Open вызываю то сам temp_dataset
проверяет если транзакция к которой он привязан на
активна то стартует ее


Vlad   (2003-12-04 19:53:00) [12]


> yaric (04.12.03 19:49) [23]

Так, уже лучше.
Но что-то в коде не видно, где ты пытаешься начать транзакцию.


yaric   (2003-12-04 19:49:00) [13]

"Vlad © был не прав"

а ошибка все равно осталась

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


Vlad   (2003-12-04 19:42:00) [14]

Для проверки можешь вот перед этой строчкой
temp_dataset.Open
написать следующее:
if Assigned(WorkDataBase) then showmessage ("Vlad © был не прав") else showmessage ("Vlad © был прав")
О результатах увиденного сообщи


yaric   (2003-12-04 19:35:00) [15]

А TpFibDatabase передается через параметры в функцию которая
из длл вызывается


Vlad   (2003-12-04 19:23:00) [16]

Может я чего не вижу (вечер уже и устал), но по моему ты создаешь экземпляр TpFibDataSet, а где создается TpFibDatabase - не видно. Видно лишь что она передается в процедуру в кач-ве параметра.


yaric   (2003-12-04 19:21:00) [17]

Так посмотри я же это делаю
текст метода в котором происходит ошибка я привел


yaric   (2003-12-04 19:20:00) [18]

Так посмотри я же это делаю
текст метода в котором происходит ошибка я привел


Vlad   (2003-12-04 19:17:00) [19]

Если он у тебя на форме лежит, то он сам создастся в момент создания формы. Если же ты его динамически создаешь, то так:
FibDatabase1:=TpFibDatabase.Create(nil)
Затем заполнить нужные проперти, и только после этого вызывать библиотечную процедуру.


yaric   (2003-12-04 19:15:00) [20]

yaric>>vlad

а как его создать


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо