05.04.2004, 19:44 | #1 |
Участник
|
Проверка на наличие открытой транзакции
Добрый день!
Есть ли возможность проверить в каком то месте открыта ли транзакция в момент выполнения кода или нет. Задача такая: Есть процедура импорта каталога товаров (примерно 150 000 позиций). При импорте одной записи производится заполнение приблизительно 10-15 таблиц. Уже тестировалось, что если в ttsbegin/ttscommit заключать каждый инсерт то процедура импорта делается в десятки раз медленнее. Т.о. возникает необходимость в одном обрамлении всего цикла заполнения всех таблиц (ничего страшного, если в случае ошибки пропадут все данные - во первых данные не сырые, подгтовленные, а во-вторых - выгода в скорости ощутимее временных потерь в случае такой неожиданной ошибки). Но - некоторые методы, которые вызываются при импорте могут вызываться для других процедур. Т.о. в этих методах желательно проверить - есть ли открытая транзакция на данный момент и если нет - то ее открыть (и потом таким же образом закрыть). Пишите мнения о подходее вообще и о поставленной проблеме в частности. Чтонибудь типа isTransactionOpen() |
|