Имя: Пароль:
1C
 
Пустая выборка запроса
0 Юлька
 
27.07.06
08:58
Подскажите можно ли создать пустую выборку запроса
1 ZolotarevAA
 
27.07.06
09:02
(0) Можно, задав в условиях запроса заведомо невыполниме условия, например
|
|  ГДЕ
|     ЛОЖЬ

Можно поинтересоваться зачем?
2 Юлька
 
27.07.06
09:16
В обработке есть процедура где из выборки формируется таб. значений
Запрос формируется по кнопке.
Если кнопка не нажата то метод "Следующий" вернет ошибку
Приходится ставить много условий.
По этому лучше сделать пустую выборку.
3 DSS
 
27.07.06
09:18
а не лучше ли проверить результатЗапроса на то пустой он или нет?
или можно РезультатЗапроса выгрузить в таб знач.
4 Квери Аналайзер
 
27.07.06
09:19
(0) Вот оно. подрастает новое адинэсавскае пакаление. мыло прикольное.
5 Юлька
 
27.07.06
09:21
Выборка много где учавствует. Будет много условий.
Лучше в начале сделать пустую выборку и не мучится
6 Козёл
 
27.07.06
09:23
(5) Вы не так программируете просто.
7 mikecool
 
27.07.06
09:23
(4) +1 :)))
8 Юлька
 
27.07.06
09:24
Почему не так программирую?
9 ZolotarevAA
 
27.07.06
09:26
РезультатЗапроса = Запрос.Выполнить();
ФлагПустойВыборки = Результат.Пустой();
10 Юлька
 
27.07.06
09:39
Воспользовалась (1).
Оптимальное решение.
11 John Connor
 
27.07.06
09:46
(10) Не надо искать легких "оптимальных" путей.
12 Юлька
 
27.07.06
10:03
Лучше понатыкать условия?

По моему лучше получить пустой запрос.

В обработке:
Есть пару мест где запрос сбрасывается на начало.
Выводится рекурсия, выводится сам запрос и т. д.

Если не использовать вариант (1) то везде нужно ставить условия (у меня их будет 4).

Я выбрала первый вариант. Получаю пустой запрос. один раз при открыитии формы.
И никаких условий ставить не нужно.

Все работает быстро и код меньше.
13 Andrey_spb
 
27.07.06
10:08
(12) Нда... С Вами спорить, ИМХО, бесполезно...
14 John Connor
 
27.07.06
10:10
(12) Есть методы прекращения выполнения такие как Возврат;
15 Юлька
 
27.07.06
10:10
Ну предложите вариант лучше.
Я же не против. Только за.
16 Юлька
 
27.07.06
10:12
Возврат не подходит.

В процедурах есть и другие операторы которые выполняются не зависимо от
результата выборки запроса.
17 Andrey_spb
 
27.07.06
10:15
(16) Есть ещё такое понятие как "стиль программирования"...
18 John Connor
 
27.07.06
10:16
(15) Разнести функционал по разным процедурам...
19 Юлька
 
27.07.06
10:17
(16)
Как быть в моем случае
Можно пример.
20 Юлька
 
27.07.06
10:18
(18) Так и есть.
Все по процедуркам.
21 Andrey_spb
 
27.07.06
10:19
Все-таки правильней проверять результат на Пустой(). А как и где это делать надо по тексту смотреть...
22 defender1
 
27.07.06
10:20
(20) никак не могу смысла понять выполнять пустой запрос, если известны условия при которых запрос должен быть пустой, то просто при тех же условиях его не выполняй вовсе, а то что вываливается в ошибку (если конечно дело не в руках и просто лень проверку ставить), то заключи в попытку
23 Andrey_spb
 
27.07.06
10:23
+22 Если надо много условий ставить, значит программа написана плохо...
24 MikleV
 
27.07.06
10:26
(23) нет
25 Юлька
 
27.07.06
10:26
(22)
Если перменную запроса не создать то она "Неопределено" метод "Следующий" вернет ошибку.

Вот и нужно создать пустую переменную с типом выборкой запроса.
26 Юлька
 
27.07.06
10:27
(21)
Но почему так?
Ведь мой вариант короче.
27 defender1
 
27.07.06
10:27
(25) УЖОС ПРОСТО... вот это номер...
28 Andrey_spb
 
27.07.06
10:29
Ветку в юмор!
29 Юлька
 
27.07.06
10:29
Ну и долго критиковать будем?
30 John Connor
 
27.07.06
10:30
(28) В черный юмор... :)))
(29) Это не критика и не руководство к действию - это дружеские советы.
31 MikleV
 
27.07.06
10:32
имхо эта девушка половине из вас надерёт задницу.. когда поумнеет.
32 MikleV
 
27.07.06
10:33
+(31) и мне тожа.. может быть.)
33 Юлька
 
27.07.06
10:33
За 30 ответов два примера.
Все остальное обсуждение темы.

Ну так расскажите в чем фишка.
34 х86
 
27.07.06
10:37
вот накинулись, в типовых и нетакое увидишь
35 defender1
 
27.07.06
10:39
(33) фишка в том, что для того, чтобы при определенных условиях выполнять пустой запрос тебе всё равно нужно ставить это условие, а если его ставить то какая разница в каком месте :-) если же формировать запрос безусловно, то ошибки не будет :-)
36 Юлька
 
27.07.06
10:43
Пример кода с путым запросом:

While (qrВыборкаБлюд.Next()) Do
  ...
EndDo;

С условием:

If (qrВыборкаБлюд <> Undefined) Then
  While (qrВыборкаБлюд.Next()) Do
     ...
  EndDo;
EndIf;

???
37 х86
 
27.07.06
10:45
я пологаю что (0) можно делать только из одного соображения, чтоб меньше менять типовую. Ну еще допускаю из лени
А если есть возможность изменения и время то лучше делать "правильно"
38 defender1
 
27.07.06
10:48
(36) я говорю, про условие выше, когда ты то формируешь запрос, то не формируешь его, иначе бы у тебя не было ситуации qrВыборкаБлюд = Undefined
39 Юлька
 
27.07.06
10:48
Хорошо может быть. Но почему с условием правильней?
40 Юлька
 
27.07.06
10:54
Это не отчет.
Где нажал кнопку "Сформировать" и готово.

Сдесь другая ситуация.
Запрос формируется один раз.
А обход его очень часто.
41 Юлька
 
27.07.06
11:03
Где гадости в мою сторону?
Хочу обсудить
42 х86
 
27.07.06
11:04
(40) ну при таком раскладе, учитывая (37) я бы тоже сделал пустую выборку,  :)
43 Юлька
 
27.07.06
11:13
А если серьезно?
44 John Connor
 
27.07.06
11:15
(41) Я думал вы пришли сюда за советом? Увы я ошибся...
45 Юлька
 
27.07.06
11:18
Вот именно его я и хочу получить.

Почему лучше проверять 100 раз условие.
При раскладе если оно в основной True
Чем сделать один раз пустой запрос

Прошу внимание на (40)
46 х86
 
27.07.06
11:26
(45)ну никто не говорит что его надо проверять 100 раз
проверить 1 раз если "ЗапросПустой" то не выполнять действия по вборке вообще
47 х86
 
27.07.06
11:26
(46) действия по выборке
48 Юлька
 
27.07.06
11:38
Вот весь расклад:
Обработка это интерфейс для кассира с активным монитором.

Выполняем запрос по справочнику номенклатуры. (Один раз!!!)

Далее есть кнопки - это номенклатура.
При нажатии которых и происходит выборка (если ето группа) -

While (qrВыборка.Next()) Do
  ...
EndDo;
(Разворачивается следующий уровень.)

И эта выборка будет происходить целый день.

А вот почему возник вопрос:
Чтобы сформировать запрос (определить переменную выборки)
Нужно выбрать нужную группу номенклатуры. (Это происходит в начале дня)
Если это сделать забыли то qrВыборка = Undefined
Метод qrВыборка.Next() вернет ошибку.

Вариант с условием рабочий.
Но рационально ли проверять условие столько раз?
Чем просто сформировать пустой запрос при открытии обработки.