Текущий архив: 2003.04.21;
Скачать: CL | DM;
Вниз
Число измененных записей Найти похожие ветки
← →
MXA (2003-04-02 18:43) [0]подскажите, пожалуйста, как в ХП после
выполнения Update определить число
измененных записей (если это, конечно, возможно)?
← →
Smashich © (2003-04-02 18:47) [1]заведи счетчик и при каждом update увелчивай его:)
← →
MXA (2003-04-02 18:58) [2]2Smashich
медленно :(
многие утилиты показывают в статистике
число измененных записей, или, например,
TSQLDataSe.ExecSQL - через API?
← →
Sergey Masloff (2003-04-02 19:53) [3]MXA (02.04.03 18:58)
2Smashich
медленно :(
С какого фига это медленно?
← →
MXA (2003-04-02 20:20) [4]>Sergey Masloff (02.04.03 19:53)
>С какого фига это медленно?
ну может триггер и несколко обращений к
счетчику и не сильно замедлят процесс при
большом числе апдейтов, но ну его нафиг ради
этого менять структуру базы
может это можно сделать как-либо еще?
конкретнее - нужно узнать, что в результате
апдейта небыло изменено ни одной записи
← →
Smashich © (2003-04-02 20:27) [5]>>>ну может триггер и несколко обращений к
счетчику и не сильно замедлят процесс при
большом числе апдейтов, но ну его нафиг ради
этого менять структуру базы
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 21:01) [6]>Smashich
>NUMOFUPDATE=NUMOFUPDATE+1
я не про то спрашивал :(
>UPDATE B SET B.Field=1 where B.id = (:di);
может проапдейтить 1 запись в таблице B, может
проапдейтить 0 записей, а может 10 - вот это
мне надо узнать :(
← →
Иван Шихалев © (2003-04-02 22:00) [7]Ничего подобного, если id - ключ.
← →
Rad © (2003-04-03 07:58) [8]А свойство
RowsAffected
не подойдет?
Правда, вроде как, оно как-то глючило - но вдруг...
← →
MXA (2003-04-03 09:51) [9]во блин :(
я как-то неточно вопрос задал?
или никто не знает?
← →
Johnmen © (2003-04-03 10:02) [10]Такая возможность есть у клиента.
Есть ли такая возможность у сервера - лично мне не известно, но логически размышляя, думается, что нет...
← →
MXA (2003-04-03 11:40) [11]то есть сервер не знает сколько он только что изменил записей?
непонятно, поделитесь своими рассуждениями, пожалуйста
← →
Johnmen © (2003-04-03 11:45) [12]Сам то сервер знает, но не предоставляет механизма (интерфейса), чтобы "другие" узнали. По крайней мере мне такой способ неизвестен...
← →
Polevi © (2003-04-03 11:51) [13]в MSSQL есть @@ROWCOUNT, насчет IB не знаю
← →
zacho © (2003-04-03 12:08) [14]Можно перед UPDATE сделать SELECT COUNT..
Или если интересует, будет ли изменена хоть одна запись - вместо SELECT COUNT можно использовать EXISTS
← →
MXA (2003-04-03 12:37) [15]2 Johnmen © (03.04.03 11:45)
>Сам то сервер знает, но не предоставляет механизма (интерфейса), чтобы "другие" узнали. По крайней мере мне такой
>способ неизвестен...
... подумал я и задал вопрос в этом форуме :)
2 zacho ©
именно этого я и хотел избежать!
← →
MXA (2003-04-03 19:19) [16]up
← →
Smashich © (2003-04-03 19:56) [17]может быть в АПИ от IB есть - не знаю
← →
panov © (2003-04-03 20:07) [18]Как вариант можно UDF использовать в триггере. накладные расходы будут минимальными.
← →
Johnmen © (2003-04-03 22:53) [19]>Smashich © (03.04.03 19:56)
>может быть в АПИ от IB есть - не знаю
Есть конечно. Функция isc_vax_integer.
Но это относится к работе ПРИЛОЖЕНИЙ.
← →
MXA (2003-04-04 09:35) [20]ок, спасибо
Страницы: 1 вся ветка
Текущий архив: 2003.04.21;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.024 c