Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

windows2000 и транзакции   Найти похожие ветки 

 
Belkova   (2003-05-30 20:51) [0]

Мастера Delphi! Подскажите в чем дело? приложение написано под Windiws98, когда установили windows2000 перестали запускаться транзакции, т.е. они запускаются, но всегда Rollback.


 
Sergey Masloff   (2003-05-30 20:59) [1]

Belkova
>перестали запускаться транзакции, т.е. они запускаются,
отличная фраза. Но штатные телепаты все в отпуске а простые смертные из вашего поста ничего не поняли


 
Belkova   (2003-05-30 21:05) [2]

Выход из транзакции всегда по Rollback, хотя причин для отката вроде бы нет. Выполняю то же самое на другой машине, где стоит Windows98 все работает


 
Zacho ©   (2003-05-30 21:22) [3]


> Belkova (30.05.03 21:05)

Не бывает такого. Транзакциями управляет клиент. Нет никакого "выхода из транзакции". Клиент может сделать либо Commit, либо Rollback. Сама по себе транзакция откатится не может, разве что в результате какого-либо сбоя, например, обрыва соединения.
Приложение делает commit ? Что при этом происходит ?


 
Suntechnic ©   (2003-05-30 21:24) [4]

Belkova (30.05.03 21:05)
Выход из транзакции всегда по Rollback...


Было бы странно, если бы работало по другому.




 
Belkova   (2003-05-30 21:29) [5]

Zacho © (30.05.03 21:22)
приложение commit не делает.


 
Zacho ©   (2003-05-30 21:35) [6]


> Belkova (30.05.03 21:29)

А должно. Некоторые компоненты доступа к БД сами могут управлять транзакциями неявно, отсюда и возникают подобные проблемы. Во избежание их - надо или явно управлять транзакциями, или хорошо знать механизм работы этих компонент.
Какие компоненты доступа ?


 
Belkova   (2003-05-30 21:44) [7]

IBQuery, IBStoredProc
А вообще выглядит примерно так
IBTransaction.StartTransaction
try
вызовы ХП
IBTransaction.commit
except
IBTransaction.Rollback


 
Dred2k ©   (2003-05-30 22:03) [8]

Версия очевидна: except без явной обработки.
Тихо выполняется rollback.
Или код будет более подробным?


 
Belkova   (2003-05-30 22:06) [9]

В except код такой и есть без явной обработки, если не сложно, то как нужно обработать и почему все-таки под windows98 никаких проблем не возникает?


 
Zacho ©   (2003-05-30 22:10) [10]


> Belkova (30.05.03 21:44)

А как согласуется "приложение commit не делает" c "IBTransaction.commit" ?
А вообще, трудно что-либо сказать. Откуда понятно, что происходит rollback ? Возникает exception ? Если да, то какое сообщение об ошибке ?
Возможно, проблема именно в TIBStoredProc. Смотри http://www.ibase.ru/devinfo/ibstp.htm


 
Dred2k ©   (2003-05-30 22:21) [11]

В том-то и проблема, что при некоторых обстоятельствах (возможно, возникающих именно в W2000) никаких сообщений не происходит, а вызывается rollback в виду возникновения какого-либо exception. Советую для начала код вида:

...
uses Dialogs;
...
except
on E : Exception do begin
ShowMessage(E.ClassName + ": " + E.Message);
end;
...


Вот тогда и посмотреть можно.


 
Belkova   (2003-05-30 22:22) [12]

Спасибо, буду смотреть!
понятно, что происходит rollback по тому, что данные в таблицу не вставляются


 
Dred2k ©   (2003-05-30 22:24) [13]

> Belkova (30.05.03 22:22)
> понятно, что происходит rollback по тому, что данные в
> таблицу не вставляются

Это спорно.
Лучше внимательно протестировать код, а тогда и видно будет...
;)


 
Belkova   (2003-05-30 22:25) [14]

Dred2k © (30.05.03 22:21)
Большое спасибо, попробую, но наверное уже завтра.


 
Zacho ©   (2003-05-30 22:36) [15]


> Dred2k © (30.05.03 22:21)

Собственно, я и хотел узнать, какая ошибка возникает. И возникает ли вообще.

> Belkova (30.05.03 22:25)

И еще - попробуй те же запросы сделать в чем-нибудь типа IBExpert. И сообщи о результатах.


 
Dred2k ©   (2003-05-30 22:44) [16]


> Zacho © (30.05.03 22:36)

Абсолютно логично.
Насчет вопроса: просто механизм exception не совсем очевиден с первого раза в плане конкретного осязаемого применения.
Я тоже по-первой загадками жил... Так что Belkova имеет шанс разобраться по-проще.
Того искренне и желаю! :)


 
sunrider   (2003-05-31 01:08) [17]

А какие наастройки IBTransaction, можно узнать? Кстати попробуй отрубить
try
exception
и посмотри на что ругается. Просто так сервер не откатывается.
Еще попробуй отключить явный старт транзакции и опять же что произойдет



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.043 c
1-84251
Step[B.M.]
2003-06-13 13:01
2003.06.26
---|Ветка была без названия|---


14-84524
Alexsus
2003-06-06 16:04
2003.06.26
Подскажите можно ли сделать в компоненте DBGrid сделать так....


1-84268
Ajax
2003-06-13 21:10
2003.06.26
Интересный глюк...


14-84610
Igor
2003-06-09 13:02
2003.06.26
Длинные строки (>=1Gb)


14-84657
qq
2003-06-10 09:52
2003.06.26
DelphiX