Ошибка при разрушении модуля.

VVD
Дата: 11.10.2004 13:27:18
Трехзвенка.
Следующий код на клиенте работает хорошо:
procedure TdmClient.DataModuleDestroy(Sender: TObject);
begin  if start then begin
//          dConnection.AppServer.RollBack(TRAN_ID);
          dConnection.AppServer.disconnect(user_login,'m');
          dConnection.Connected:=false;
end;   end;
При закрытии клиента сервер (для подстраховки) должен закрыть висящие (возможно) транзакции. Для этого комментарий на вызове соттветствующего метода снимается. После этого в половине случаев процедура вылетает по адресации, а в половине завершается успешно.

Где моя ошибка ?

Спасибо.
distinger
Дата: 11.10.2004 13:33:08
Где угодно.
Dedushka Mazai
Дата: 11.10.2004 13:35:43
а если пытаться то же самое делать не с клиента, а на destroy rdm-а?
VVD
Дата: 11.10.2004 13:36:44
distinger
Где угодно.

Значит, бросать монету или вопрос плохо сформулировал ?
VVD
Дата: 11.10.2004 13:58:20
Dedushka Mazai
а если пытаться то же самое делать не с клиента, а на destroy rdm-а?


Вообще-то ситуация с висящей транзакцией получалась у заказчика всего два раза за пару лет при каких-то хитрых сбоях на клиентской части. Сответственно RDM не соображает, что тут нужно закрыться. Поскольку этот збой повторить пока не могу, пытаюсь таким способом временно закрыть дыру.
Перебросить же работу первого метода во второй - есть ньюансы - надо подумать, но за идею спасибо.
distinger
Дата: 11.10.2004 14:42:34
Глядя на приведенный код нельзя сказать в чем дело
может на сервере, а может dConnection где-то убивается
неясно

и кстати: зачем позднее связывание используешь? используй раннее, и удобней и ошибок меньше проскакивает
Dedushka Mazai
Дата: 11.10.2004 14:49:41
distinger

и кстати: зачем позднее связывание используешь? используй раннее, и удобней и ошибок меньше проскакивает

и какие же могут быть ошибки?
distinger
Дата: 11.10.2004 14:52:01
Да хотябы при передаче параметров в серверные функции
в раннем связывании можно посмотреть что передавать
да и работает немного побыстрей
Dedushka Mazai
Дата: 11.10.2004 14:54:31
зато надо регистрить библиотеку типов сервера на каждом клиенте.
distinger
Дата: 11.10.2004 14:57:24
Вовсе не обязательно, достаточно файл с описанием серверных интерфейсов в uses клиента подключить