Страница 1 из 1

ROWS_AFFECTED=ROW_COUNT?

Добавлено: 03 июл 2007, 06:20
stix-s
Из Firebird_v1.5.4.ReleaseNotes
FR # 451927
By D. Yemanov
(1.5) New ROWS_AFFECTED system variable in PSQL: return number of rows affected by the
last INSERT/UPDATE/DELETE statement. For any other statement than INSERT/UPDATE/
DELETE, result is always zero.
Parser changes
By D. Yemanov
(1.5) Changed parser.-
1. ROWS_AFFECTED is renamed to ROW_COUNT
2. CONNECTION_ID/TRANSACTION_ID are renamed to CURRENT_
CONNECTION/CURRENT_TRANSACTION
3. Some of the newly introduced tokens are made non-reserved
Firebird_v2.0.1.ReleaseNotes
Context Variable ROW_COUNT Enhanced
D. Yemanov
ROW_COUNT has been enhanced so that it can now return the number of rows returned by a SELECT statement.
For example, it can be used to check whether a singleton SELECT INTO statement has performed an assignment:
..
BEGIN
SELECT COL FROM TAB INTO :VAR;
IF (ROW_COUNT = 0) THEN
EXCEPTION NO_DATA_FOUND;
END
Если я правильно понял, то ROW_COUNT только для select, а как с update быть? :(

Добавлено: 03 июл 2007, 09:35
dimitr
ты понял неправильно. ROW_COUNT теперь для всего, включая SELECT.

Добавлено: 03 июл 2007, 09:49
stix-s
dimitr писал(а):ты понял неправильно. ROW_COUNT теперь для всего, включая SELECT.
а если у меня в ХП 2 SELECT-а и UPDATE, как определить к какому ROW_COUNT относится?

Добавлено: 03 июл 2007, 09:54
WildSery
stix-s писал(а):а если у меня в ХП 2 SELECT-а и UPDATE, как определить к какому ROW_COUNT относится?
К тому, после которого смотрится :)

Добавлено: 03 июл 2007, 10:01
stix-s
WildSery писал(а):
stix-s писал(а):а если у меня в ХП 2 SELECT-а и UPDATE, как определить к какому ROW_COUNT относится?
К тому, после которого смотрится :)
тогда очень интересно, что после SELECT-а, который точно возвращает строку ROW_COUNT=0, а после UPDATE - 1 и так 1-чкой, зараза и остается, так что пока пользую локальную переменную

Добавлено: 03 июл 2007, 11:53
WildSery
stix-s писал(а):после SELECT-а, который точно возвращает строку ROW_COUNT=0
Вот тут не верится. Сразу за селектом, или ещё чего успел поделать?

Добавлено: 03 июл 2007, 12:11
stix-s
WildSery писал(а):
stix-s писал(а):после SELECT-а, который точно возвращает строку ROW_COUNT=0
Вот тут не верится. Сразу за селектом, или ещё чего успел поделать?

Код: Выделить всё

 for select  sa.APPL_ID ,cast(sum(sa.TIME_DEACT-sa.TIME_ACT) as int)as interval_work,
 sa.DATE_WORK,sa.WIN_USER,sa.COMP_NAME from
   STATISTICS_APPL sa
   where ..........
   do
    begin
     vrec_id=null;
     update appl_hist ..........
     if (row_count=0)
     then
       insert into appl_hist...........
    end

Добавлено: 03 июл 2007, 12:26
WildSery
И где тут селект, после которого ROW_COUNT = 0?
Я уже ничего не понимаю, о чём ты.

Добавлено: 03 июл 2007, 12:32
stix-s
WildSery писал(а):И где тут селект, после которого ROW_COUNT = 0?
Я уже ничего не понимаю, о чём ты.
я в IBExperte в отладчике ROW_COUNT смотрю
и после прохода

Код: Выделить всё

select  sa.APPL_ID ,cast(sum(sa.TIME_DEACT-sa.TIME_ACT) as int)as interval_work, 
 sa.DATE_WORK,sa.WIN_USER,sa.COMP_NAME from 
   STATISTICS_APPL sa 
   where .......... 
до выполнения

Код: Выделить всё

     vrec_id=null; 
     update appl_hist ..........
ROW_COUNT = 0

Добавлено: 03 июл 2007, 12:40
hvlad
stix-s писал(а):
WildSery писал(а):И где тут селект, после которого ROW_COUNT = 0?
Я уже ничего не понимаю, о чём ты.
я в IBExperte в отладчике ROW_COUNT смотрю
Смешной

Добавлено: 03 июл 2007, 12:59
stix-s
hvlad писал(а): Смешной
Смешно, конечно, когда знаешь, что именно

Добавлено: 03 июл 2007, 13:20
dimitr
отладчик эксперта к серверу никакого отношения не имеет. Вследствие чего часто показывает не то, что должен.

Добавлено: 03 июл 2007, 13:20
kdv
Смешно, конечно, когда знаешь, что именно
отладчик IBExpert, как и другие отладчики процедур и триггеров для IB/FB, делают следующее:

1. парсят код
2. выполняют код по кускам. организуя и циклы самостоятельно, и все остальное
3. переменные при этом используются ЛОКАЛЬНЫЕ для отладчика. Грубо говоря, даже row_count он будет пытаться получить с сервера посредством select row_count from rdb$database.

поэтому попытки просмотра таких переменных через "отладчик" есть бред, возможно пока еще не воспаленного мозга :)

ты бы хоть параллельно с отладкой на монитор запросов IBE поглядел. Сразу бы понял, чего он делает.

Добавлено: 03 июл 2007, 13:26
stix-s
kdv писал(а):
Смешно, конечно, когда знаешь, что именно
отладчик IBExpert, как и другие отладчики процедур и триггеров для IB/FB, делают следующее:

1. парсят код
2. выполняют код по кускам. организуя и циклы самостоятельно, и все остальное
3. переменные при этом используются ЛОКАЛЬНЫЕ для отладчика. Грубо говоря, даже row_count он будет пытаться получить с сервера посредством select row_count from rdb$database.

поэтому попытки просмотра таких переменных через "отладчик" есть бред, возможно пока еще не воспаленного мозга :)

ты бы хоть параллельно с отладкой на монитор запросов IBE поглядел. Сразу бы понял, чего он делает.
Засада :( лана, будм смареть другим путем
я-то как-то привык, шо отладчик - он и есть отладчик

Добавлено: 03 июл 2007, 23:32
kdv
я-то как-то привык, шо отладчик - он и есть отладчик
надо же и догадывалку включать. неужели где-то в доке по ib/fb ты видел слово "отладчик"? :)