powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.1.7, execute block and select from
9 сообщений из 9, страница 1 из 1
Firebird 2.1.7, execute block and select from
    #40046275
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой вот скрипт:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CONNECT 'localhost:D:\BD\Main\MAIN.FDB' USER 'SYSDBA' PASSWORD 'masterkey';

set term #;
EXECUTE BLOCK
AS
DECLARE I NUMERIC(18,0) = 0;
DECLARE IMAX NUMERIC(18,0) = 0;
DECLARE C NUMERIC(18,0) = 0;
BEGIN
  SELECT MAX(ID) FROM BARCODE INTO :IMAX;
  WHILE (I <= :IMAX) DO
  BEGIN
    SELECT 1 CODE FROM BARCODE  WHERE ID = :I  into :c;
--    SELECT 1 CODE FROM BARCODE WHERE ID = :I;
    I = I + 1;
  END
END#
set term ;#


В таком виде скрипт исполняется
а вот на закомментрованый Select без "into" движок ругается:
C:\Program Files (x86)\FireBird\FireBird_2_1\BIN>isql.exe -q -i D:\BD\Main\1.sql
Statement failed, SQLCODE = -104
Dynamic SQL Error
-SQL error code = -104
-Token unknown - line 11, column 45
-;
At line 14 in file D:\BD\Main\1.sql
...
Рейтинг: 0 / 0
Firebird 2.1.7, execute block and select from
    #40046277
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17.02.2021 14:34, Cobalt747 пишет:
> а вот на закомментрованый Select без "into" движок ругается:

и шо?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 2.1.7, execute block and select from
    #40046278
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

а результат селекта ему куда девать? Зачем вообще в этом коде селект, который никуда ничего не возвращает?
...
Рейтинг: 0 / 0
Firebird 2.1.7, execute block and select from
    #40046288
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Cobalt747,
а результат селекта ему куда девать? Зачем вообще в этом коде селект, который никуда ничего не возвращает?

Проверить доступ к записи
какое вообще дело движка - деваю я куда-то эти данные или нет?
...
Рейтинг: 0 / 0
Firebird 2.1.7, execute block and select from
    #40046292
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем тут скрипт, а не запрос, мне лично не понятно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 2.1.7, execute block and select from
    #40046293
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747
kdv
Cobalt747,
а результат селекта ему куда девать? Зачем вообще в этом коде селект, который никуда ничего не возвращает?

Проверить доступ к записи
какое вообще дело движка - деваю я куда-то эти данные или нет?


проверить наличие - if (exists (selecf * from )

движку вообще все пофиг, но если написал - выбрать данные - напиши куда.
...
Рейтинг: 0 / 0
Firebird 2.1.7, execute block and select from
    #40046296
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747какое вообще дело движка - деваю я куда-то эти данные или нет?
господи. Ну скомпили в каком-нибудь ЯП просто имя переменной. Без чтения или записи в неё.
Например
Код: plaintext
1.
2.
begin
 i:
end
и что это будет? Ахинея какая-то.

а вот into или if exists - это уже получение результата (хоть какого).
...
Рейтинг: 0 / 0
Firebird 2.1.7, execute block and select from
    #40046507
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Хромая аналогия ;-)
Я бы сравнил с вызовом функции, результат которой ничему не присваивается, например:
Код: pascal
1.
2.
3.
begin
  Screen.GetParentComponent;
end;
...
Рейтинг: 0 / 0
Firebird 2.1.7, execute block and select from
    #40046541
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747,

нет. у тебя странные не-программистские аналогии порой случаются.
Вызов функции - это если ты вызываешь select с udf которая какие-нибудь безобразия "вовне" делает, или вызываешь процедуру, которая делает update или insert кроме select, и т.д.
А тут у тебя просто select, который обращается к данным, но никуда ничего не выводит. В твоём случае такая функция будет содержать просто begin end. Понятно, что вызывать такую функцию не запрещено, но делать она ничего не будет, и результат возвращать тоже не будет. Ноль смысла.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.1.7, execute block and select from
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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