Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Число измененных записей [IB6.x]


MXA ©   (2003-04-02 18:43:00) 

подскажите, пожалуйста, как в ХП после
выполнения Update определить число
измененных записей (если это, конечно, возможно)?


MXA   (2003-04-04 09:35:00) [1]

ок, спасибо


Johnmen   (2003-04-03 22:53:00) [2]

>Smashich © (03.04.03 19:56)
>может быть в АПИ от IB есть - не знаю

Есть конечно. Функция isc_vax_integer.
Но это относится к работе ПРИЛОЖЕНИЙ.


panov   (2003-04-03 20:07:00) [3]

Как вариант можно UDF использовать в триггере. накладные расходы будут минимальными.


Smashich   (2003-04-03 19:56:00) [4]

может быть в АПИ от IB есть - не знаю


MXA   (2003-04-03 19:19:00) [5]

up


MXA   (2003-04-03 12:37:00) [6]

2 Johnmen © (03.04.03 11:45)
>Сам то сервер знает, но не предоставляет механизма (интерфейса), чтобы "другие" узнали. По крайней мере мне такой
>способ неизвестен...
... подумал я и задал вопрос в этом форуме :)

2 zacho ©
именно этого я и хотел избежать!


zacho   (2003-04-03 12:08:00) [7]

Можно перед UPDATE сделать SELECT COUNT..
Или если интересует, будет ли изменена хоть одна запись - вместо SELECT COUNT можно использовать EXISTS


Polevi   (2003-04-03 11:51:00) [8]

в MSSQL есть @@ROWCOUNT, насчет IB не знаю


Johnmen   (2003-04-03 11:45:00) [9]

Сам то сервер знает, но не предоставляет механизма (интерфейса), чтобы "другие" узнали. По крайней мере мне такой способ неизвестен...


MXA   (2003-04-03 11:40:00) [10]

то есть сервер не знает сколько он только что изменил записей?
непонятно, поделитесь своими рассуждениями, пожалуйста


Johnmen   (2003-04-03 10:02:00) [11]

Такая возможность есть у клиента.
Есть ли такая возможность у сервера - лично мне не известно, но логически размышляя, думается, что нет...


MXA   (2003-04-03 09:51:00) [12]

во блин :(
я как-то неточно вопрос задал?
или никто не знает?


Rad   (2003-04-03 07:58:00) [13]

А свойство RowsAffectedне подойдет?
Правда, вроде как, оно как-то глючило - но вдруг...


Иван Шихалев   (2003-04-02 22:00:00) [14]

Ничего подобного, если id - ключ.


MXA   (2003-04-02 21:01:00) [15]

>Smashich
>NUMOFUPDATE=NUMOFUPDATE+1
я не про то спрашивал :(

>UPDATE B SET B.Field=1 where B.id = (:di);
может проапдейтить 1 запись в таблице B, может
проапдейтить 0 записей, а может 10 - вот это
мне надо узнать :(



Smashich   (2003-04-02 20:27:00) [16]

>>>ну может триггер и несколко обращений к
счетчику и не сильно замедлят процесс при
большом числе апдейтов, но ну его нафиг ради
этого менять структуру базы

CREATE PROCEDURE "UPDATESOME"
(
ID INTEGER
)
RETURNS
(
NUMOFUPDATE INTEGER
)
AS
DECLARE di int;
begin
NUMOFUPDATE=0;
for select * from A where A.id = :id into di
do
begin
UPDATE B SET
B.Field=1
where B.id = (:di);
NUMOFUPDATE=NUMOFUPDATE+1
end
suspend;
end ^


MXA   (2003-04-02 20:20:00) [17]

>Sergey Masloff (02.04.03 19:53)
>С какого фига это медленно?
ну может триггер и несколко обращений к
счетчику и не сильно замедлят процесс при
большом числе апдейтов, но ну его нафиг ради
этого менять структуру базы

может это можно сделать как-либо еще?

конкретнее - нужно узнать, что в результате
апдейта небыло изменено ни одной записи


Sergey Masloff   (2003-04-02 19:53:00) [18]

MXA (02.04.03 18:58)
2Smashich
медленно :(

С какого фига это медленно?


MXA   (2003-04-02 18:58:00) [19]

2Smashich
медленно :(

многие утилиты показывают в статистике
число измененных записей, или, например,
TSQLDataSe.ExecSQL - через API?


Smashich   (2003-04-02 18:47:00) [20]

заведи счетчик и при каждом update увелчивай его:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо