SELECT

AlexFireBird
Дата: 18.07.2012 15:18:00
FOR SELECT
    S.TOTAL,
    S.INVOICEID
  FROM
    DOC0004_SUB01 S
  WHERE
    (S.DOCUMENTID = :DID)
  INTO
    :STOTAL,
    :INVOICEID
  DO BEGIN
    RESTID = 0;
 
    SELECT
      G.ID
    FROM
      ST_REST G
    WHERE
      (G.INVOICEID = :INVOICEID) AND
      (G.STATE = 1)
    INTO
      :RESTID;

    IF (COALESCE(:RESTID, 0) = 0) THEN BEGIN

      INSERT INTO ST_REST (
        TOTAL,
        INVOICEID,
        STATE)
      VALUES (
        :STOTAL,
        :INVOICEID,
        1);
    END
    ELSE BEGIN

      UPDATE ST_REST G
      SET
        G.TOTAL = G.TOTAL + :STOTAL
      WHERE
        (G.ID = :RESTID);
    END

    EXECUTE PROCEDURE DOC0001_AUTO_CLOSE_OR_UNCLOSE(
      :INVOICEID);
  END


Всем привет! Прошу помоч кто знает. Если я не сделаю RESTID = 0; И
SELECT
      G.ID
    FROM
      ST_REST G
    WHERE
      (G.INVOICEID = :INVOICEID) AND
      (G.STATE = 1)
    INTO
      :RESTID;


не находит ни одно запись! В переменную попадет NULL? Или (МНЕ ТАК ПОКАЗАЛОСЬ) там будет значение из приведущего витка цикла? Задаю вопрос так как ОТДЕБАЖИТЬ это не могу. Ошибка проскакивает то 1 ил 18 то 1 из 5 то 1 и 40 раз выполнения процедуры. Решил спросить у тех кто в курсе!

Повторю точно вопрос. Если в цикле присваивать значение в переменную из пустого СЕЛЕКТА (во время в к примеру 3го витка цикла) что будет в переменно? NULL или значение 2го витка цикла? FIREBIRD 2.5 - в инете инфы не нашел
Dimitry Sibiryakov
Дата: 18.07.2012 15:27:08

AlexFireBird
FIREBIRD 2.5 - в инете инфы не нашел

Плохо искал. В каждом подобном топике говорится, что значение переменной не меняется
самопроизвольно.

Posted via ActualForum NNTP Server 1.5

AlexFireBird
Дата: 18.07.2012 15:31:40
Dimitry Sibiryakov
AlexFireBird
FIREBIRD 2.5 - в инете инфы не нашел

Плохо искал. В каждом подобном топике говорится, что значение переменной не меняется
самопроизвольно.


СПС. Я так и попял что переменная не инициализируеться и там остаеться старое значение. Просто странно что это происходит как-то раз через раз.
Dimitry Sibiryakov
Дата: 18.07.2012 15:37:47

AlexFireBird
странно что это происходит как-то раз через раз.

Нет, это происходит всегда. Сервер так написан.

Posted via ActualForum NNTP Server 1.5