Посмотрел. пока не могу проверить, но
по логике должно работать.

за одним исключением - вызов ReadResponse()
при получении кода операции op_response
вызовет исключение. сразу. в то время
как клиентская библиотека firebird
кэширует статус с ошибкой и выдаст его
только после выборки из буфера всех
предыдущих данных.

Не знаю какое поведение более
корректно - вариант клиентской либы
Firebird или Карлоса - ведь клиент может
выполнить isc_dsql_free_statement и подтвердить
транзакцию не выбрав всех данных из
буфера, а значит и не подозревая что
произошло исключение на сервере и
какие-то операции были откачены, а с
другой стороны непонятно на какой
записи произошло исключение...

--
Oleg
.

Ответить