Horsun Vlad писал(а):

> > Мне нужно получать RowsAffected только для
> > INSERT/UPDATE/DELETE
>
>     Я бы сказал, что тебе нужно получать RowsAffected
>
> а) когда попросит юзер - тут нужно возвращать святую правду
>    и ничего кроме правды

Ему можно сказать - нифига посчитать не
могу (-1). Это лучше чем вернуть цифру,
которая неизвестно что обозначает.

> б) когда ты за него делал аналог INSERT/UPDATE/DELETE - тут ты
>    знаешь, что ты собирался делать и возвращать нужно соответствующее
>    значение
>
>     Что я упустил ?

Я за него ни чего не делаю - я только
смотрю, что он хочет сделать.
Хочет сделать INSERT - я возвращаю число
вставленных рядов
UPDATE - число обновленных рядов
DELETE - удаленных

Что-то другое - возвращаю -1.

> > Для остальных - алгоритм должен вернуть -1.
>     Это не понято

Ага, а если процедура удалит 3 ряда,
изменит 4 им вставит 5, то RowsAffected равный
12-ти тебе будет понятен.

> > Старый алгоритм получает
>
>     Не нравится

Кому не нравится? В сети полно
алгоритмов которые именно так и
работают.

> > Мы имеем модификацию алгоритма,
> > который теперь кладет на тип запроса
> > и складывает все три
> > числа.

>     Зачем он их складывает ???

А что ты с ними предлагаешь делать? В
буфере всегда приходят три числа - для
insert / update / delete

>     Сервер -1 никогда не возвращает. Я вообще не понимаю -
> откуда у тебя такое требование.

Спецификация OLEDB - не смог определить
RowsAffected - верни (-1)

>     Считай правильно и никого не вводи в заблуждение. Для процедуры,
> вообще говоря, понятия абстрактного RowsAffected не существует.

> PS как вариант : если у тебя запрос вызывался в качестве INSERT,
>    возвращай клиенту кол-во вставленных строк и т.д.

Я вот хотел сказать "Да елки моталки,
приведи мне правильный код подсчета
RowsAffected", но тут увидел твой PS

Вопрос - кто мне скажет что запрос
выполнился в качестве INSERT? Ваш сервер
мне говорит, что это вовсе не INSERT (...
RETURNING) - а вызов хранимой процедуры.

Коваленко Дмитрий.

Ответить