Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / if exists or exists - очень непонятный мне глюк / 6 сообщений из 6, страница 1 из 1
24.10.2003, 00:16
    #32303750
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists or exists - очень непонятный мне глюк
Firebird 1.0 и Эксперт

Подскажите, коллеги, валидна ли такая постановка вопроса в ХП:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
  if
  (
    exists
    (
      select *
      from  "permwrite" 
      where  "permwrite" . "metid"  = : "id" 
      and  "permwrite" . "userid"  = : "userid" 
    )
    or
    exists
    (
      select  "groupid" 
      from  "usergroup" 
      where  "userid"  = : "userid"  and
         "groupname"  = '_admin'
    )
  )
  then
  begin
    delete from  "table"  where  "id" =: "id" ;
  end
  else
  begin
    exception  "insuffauth" ;
  end


У меня глючит следующим образом:

после первого запуска вываливается эксепшн (из триггера на delete , не insuffauth), когда второй раз запускаешь процедуру, вообще ничего не происходит...

а вот если в ифе только один экзистс (второй), то тогда вываливается эксепшн каждый раз, то есть все нормально...

может это какой баг, который есть в списке багов?
...
Рейтинг: 0 / 0
24.10.2003, 11:16
    #32304007
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists or exists - очень непонятный мне глюк
Попробуй на 1.5 Всё равно единичку править не будут уже.
...
Рейтинг: 0 / 0
24.10.2003, 12:19
    #32304148
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists or exists - очень непонятный мне глюк
То есть код в принципе валидный?

мне не хотелось бы пока переходить на Кандидат, даже на Релиз думаю не сразу перейду.

если код правильный, но проявляется баг, я лучше воркараунд напишу...
...
Рейтинг: 0 / 0
25.10.2003, 13:53
    #32305099
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists or exists - очень непонятный мне глюк
Переписал таким макаром

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
    if
    (
      exists
      (
        select *
        from  "permwrite" 
        where  "permwrite" . "metid"  = : "id" 
        and  "permwrite" . "userid"  = : "userid" 
      )
    )
    then
    begin
        if
        (
          exists
          (
            select  "groupid" 
            from  "usergroup" 
            where  "userid"  = : "userid"  and
             "groupname"  = '_admin'
          )
        )
        then
        begin
          delete from  "mytable"  where  "id" =: "id" ;
        end
        else
        begin
          exception  "insuffauth" ;
        end
    end
    else
    begin
        exception  "insuffauth" ;
    end


то есть чтобы не было if exists or exists, думал в этом дело - та же фигня :((( после одного exists нельзя сразу вызвать другой, даже в другом блоке??

никак не пойму это баг или я синтаксис неправиьлный пишу...

кто поможет? где еще спросить может?
...
Рейтинг: 0 / 0
27.10.2003, 11:37
    #32305840
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists or exists - очень непонятный мне глюк
на epsylon косвенно признали, что это баг.

надо делать воркараунд , простите за мой французский...
...
Рейтинг: 0 / 0
27.10.2003, 16:33
    #32306380
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists or exists - очень непонятный мне глюк
это тоже самое что это
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / if exists or exists - очень непонятный мне глюк / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]