Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Снова вопрос о пакетных изменениях в АДО / 1 сообщений из 1, страница 1 из 1
09.12.2004, 10:04:06
    #32819964
RomanStO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Снова вопрос о пакетных изменениях в АДО
Исходная ситуация - имеется открытый рекордсет в режиме пакетного обновления.
Делаем правку - удаляем из него одну запись, затем вставляем новую .
Делаем UpdateBatch.
С помощью профайлера отлавливаем передаваемые на сервер команды.
Вот они
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
set implicit_transactions on 

exec sp_executesql N'DELETE FROM "SALARY_cat".."kd_PrikazDetailOtp" WHERE "id"=@P1; INSERT INTO "SALARY_cat".."kd_PrikazDetailOtp" ("idPrikaz","Rekno") VALUES (@P2,@P3)', N'@P1 int,@P2 int,@P3 int', 276, 175, 2230

SELECT @@IDENTITY

IF @@TRANCOUNT >  0  COMMIT TRAN

Как видим , вторая команда вызывает пакет из Delete и Insert
При этом , если Delete проходит без ошибок, то ошибка при выполнении Insert не попадает на клиента , и транзакция закомичивается .

Коллекция Errors в соединении остается пустой, рекордсет считает , что все записи успешно переданны на сервер.

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

Выполнение в Query Analyser приводит к закономерной ругани .

Спасибо.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Снова вопрос о пакетных изменениях в АДО / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]