Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];

Вниз

Оператор BREAK в IB   Найти похожие ветки 

 
stkatch   (2003-05-28 11:19) [0]

Привет, Мастера!
Не подскажете, если в IB в хранимых процедурах оператор типа BREAK или как реализовать следущую конструкцию

FOR
SELECT ...
DO
BEGIN
IF (Filed1 <> SMTH) THEN
BREAK; --???
-- DO SMTH
END


 
AlexSerp   (2003-05-28 11:26) [1]

А что тебя здесь смущает?
На вид все нормально.
Сам проверял?


 
stkatch   (2003-05-28 11:30) [2]

У меня ругается на BREAK. У меня IB 6.01


 
AlexSerp   (2003-05-28 11:35) [3]

Что-то я стормозил.
Надо EXIT вместо BREAK написать.


 
Johnmen   (2003-05-28 11:36) [4]

EXCEPTION MYEXCEPTION777;
Приводит к прекращению выполнения ХП, триггера.


 
stkatch   (2003-05-28 11:38) [5]

А если у меня процедура следущего типа:
BEGIN
FOR
SELECT ...
DO
BEGIN
IF (Filed1 <> SMTH) THEN
BREAK; --???
-- DO SMTH
END
-- DO SMTH
END
Если вставить EXIT то приведет к выходу из ВСЕЙ процедуры, разве нет?


 
AlexSerp   (2003-05-28 11:44) [6]

Да, из всей.
А ты хочешь на след.запись встать?
Ну дык, и сделай все через IFы.
Объяснил бы поконкретнее.


 
stkatch   (2003-05-28 11:50) [7]

> AlexSerp
BEGIN
FOR
SELECT ...
DO
BEGIN
IF (Filed1 <> SMTH) THEN
BREAK; --???
-- DO SMTH
END
OPERATOR1;
END

Я хочу если выполняется условие выйти из цикла FOR и перейти к выполнению OPERATOR1


 
AlexSerp   (2003-05-28 12:02) [8]

Ну что я могу на это сказать.
Сделай запрос такой, чтобы ты получил ТОЛЬКО интересующие тебя данные, чтобы не было таких моментов, который ты описал.
Ведь это более логично.
А прервать цикл как в Делфях в ИнтерБасе не выйдет.

Хотя можно вызвать эту процедуру из другой, в которой и прописать те действия, которые ты хочешь сделать после прервания в этой процедуре.
Ясно сказал? Если нет, задавай еще вопросы.


 
stkatch   (2003-05-28 12:11) [9]

Мне надо выбрать только первую запсиь из результата, возвращаемого запросом. Написать запрос, чтобы он возвращал только одну запись представляется довольно проблематичным :-(


 
Alexandr   (2003-05-28 12:32) [10]

нету break


 
DarkGreen   (2003-05-28 12:55) [11]

stkatch (28.05.03 12:11)
Чем проблематично? В FB, ИМХО, есть конструкция FIRST n. Вот и выбирай FIRST 1.


 
stkatch   (2003-05-28 13:13) [12]

> DarkGreen
У меня не FB, поэтому и спрашиваю. А в IB выборка первой записи очень усложняет запрос, хотя конечно это возможно. Но с помощью BREAK это было бы сделать логичнее


 
DarkGreen   (2003-05-28 13:37) [13]

Ну а кто тебе мешает поставить FB? Или только из религиозных предрассудков?


 
stkatch   (2003-05-28 13:55) [14]

К сожалению не только религиозные и не только предрассудки. На самом деле проблема решается при помощи исключений и их обработке. Спасибо всем!


 
AlexSerp   (2003-05-28 14:05) [15]

Повторю.
Хотя можно вызвать эту процедуру из другой, в которой и прописать те действия, которые ты хочешь сделать после прервания в этой процедуре.

И здесь можно обойтись EXIT без исключений.
Т.к. при исключении появляется окно с предупреждением/ошибкой,
а по EXIT ты просто выходишь из процедуры, не пугаю юзера.


 
DarkGreen   (2003-05-28 14:11) [16]

2 stkatch (28.05.03 13:55)
Я так и не понял, что мешает поставить FireBird 1.0, клон IB, к тому же бесплатный вместо IB 6.x?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.008 c
1-60176
leonidus
2003-06-02 16:05
2003.06.19
Окошко как в FlashGet`е


14-60367
Lola
2003-06-02 14:00
2003.06.19
Специалистам в Аccess


1-60118
sirius
2003-06-06 11:57
2003.06.19
Вопрос по созданию компонент Delphi


1-60150
Zew
2003-06-04 18:19
2003.06.19
через определённое время прибавлять число


14-60406
Greff
2003-06-02 16:58
2003.06.19
StripReloc





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский