"Kovalenko Dmitry" ...
>
> > > Старые алгоритмы вычисления RowsAffected не
> > > рюхают exec_stmt или как там его для
> > > хранимых процедур называют - не помню.
> >
> > Я знаю только один 'алгоритм' вычисления RowsAffected.
> > И его можно применять к любому отпрепаренному стейтменту,
> > независимо от его типа.
>
> Так, давай поясню.
>
> Мне нужно получать RowsAffected только для
> INSERT/UPDATE/DELETE
Я бы сказал, что тебе нужно получать RowsAffected
а) когда попросит юзер - тут нужно возвращать святую правду
и ничего кроме правды
б) когда ты за него делал аналог INSERT/UPDATE/DELETE - тут ты
знаешь, что ты собирался делать и возвращать нужно соответствующее
значение
Что я упустил ?
> Для остальных - алгоритм должен вернуть -1.
Это не понято
> Старый алгоритм получает
> тип запроса и количество
> добавленных/обновленных/удалаенных
> записей. В зависимости от типа мы
> выбирали не более одного из этих трех
> чисел - остальные игнорировались
Не нравится
> Что мы имеем с RowsAffected для INSERT...RETURNING?
Да-да - что мы имеем ? :)
> Мы имеем модификацию алгоритма,
> который теперь кладет на тип запроса
> (либо начинает поддерживать
> isc_info_sql_stmt_exec_procedure) и складывает все три
> числа.
Зачем он их складывает ???
> Если мы выполним запрос с хранимой
> процедурой (isc_info_sql_stmt_exec_procedure) - такой
> алгоритм сработает и вернет сумму
> чисел. Б....я буду - у меня для таких
> запросов получался ноль. А мне ноль не
> нужен, мне нужен -1.
Сервер -1 никогда не возвращает. Я вообще не понимаю -
откуда у тебя такое требование.
> > > А insert ... returning - теперь у нас объявлен
> > > как хранимая процедура.
> >
> > И как это мешает получить RowsAffected ?
>
> Начинает неправильно считаться RowsAffected
> для хранимых процедур.
Считай правильно и никого не вводи в заблуждение. Для процедуры,
вообще говоря, понятия абстрактного RowsAffected не существует.
--
Хорсун Влад
PS как вариант : если у тебя запрос вызывался в качестве INSERT,
возвращай клиенту кол-во вставленных строк и т.д.