powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите, pls: Ado Command возвращает 0 RowsAffected
5 сообщений из 5, страница 1 из 1
Помогите, pls: Ado Command возвращает 0 RowsAffected
    #32046127
Master D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ситуация: Работаем с MSSQL 7.0 sp2
при выполнении insert ... values (...) через Command.Excecute этот самый Execute возвращает RowsAffected = 0 если в таблице, куда вставляется запись, есть триггер на update, в котором выполнается код типа
Код: plaintext
update OtherTable set Column=Column where  1 = 0 

т.е. какой-либо апдейт, который не обновляет ни одной строки.
Раньше с сервером работали через bde(dblib), и тот возвращал правильное количество вставленных записей.
Проблема в том, что делфи проверяет RowsAffected и решает, что вставка не прошла. В результате вся транзакция откатывается.

Коллеги, это баг или фича? И как с этим можно бороться,
посоветуйте пожалуйста.
...
Рейтинг: 0 / 0
Помогите, pls: Ado Command возвращает 0 RowsAffected
    #32046131
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В триггере стоит SET NOCOUNT ON?
...
Рейтинг: 0 / 0
Помогите, pls: Ado Command возвращает 0 RowsAffected
    #32046261
Master D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 jimmers:
Конечно нет :) Я проверил: если ставить NOCOUNT ON
Возвращается RowCount = -1
А если OFF - 0, как я и писал раньше :)
...
Рейтинг: 0 / 0
Помогите, pls: Ado Command возвращает 0 RowsAffected
    #32046263
Trong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А при выполнении из QA он пишет скока строк обновлено?
...
Рейтинг: 0 / 0
Помогите, pls: Ado Command возвращает 0 RowsAffected
    #32046333
Master D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Тrong:
Пишет. Ну конечно в этаком виде:
0 rows affected (Это пустой апдейт в триггере)
1 rows affected (Это сам insert)

И ДвеСобаки-РоузАффектид после этого инсерта тоже как положено имеет значение 1.

Похоже что дело в ADO. Я думал глюк. У меня сначала стоял 7.0 без сервиспаков, потом я поставил sp2 потом клиента поставил от 2000. И результат одинаков.
Может все таки фича, а я, новичок в адо, не понимаю в чем прелесть?

Беда в том, что делфевый мидас, который я пользовал и продолжаю пользовать. а точнее TDatasetProvider (а еще точнее SQLResolver) проверяет это значение. И что бы моя старая прога заработала с ADO пришлось написать наследника от этого провайдера и отключить проверку.
А теперь сижу и думаю, может сам дурак, велосипед изобрел?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите, pls: Ado Command возвращает 0 RowsAffected
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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