Страница 1 из 1

Скрипт не любит слово Describe? Или русский язык?

Добавлено: 19 дек 2005, 08:15
Solo
Мое приложение предусматривает запуск скриптов (один из них приведен ниже). Использую компоненты библиотеки IBO (и буду использовать!!!), в частности, IB_Script. При запуске дает ошибку, что не распознана команда DESCRIBE. Кстати, если запускаю в редакторе скриптов IB_Expert-а, тоже такую же ошибку дает. А если убираю дескрайбы переменных, то-есть стираю вообще - тогда скрипт выполняется без разговоров.
FB 1.52, D6, XP и 2000pro.

Может, описания на русском ему не нравится? У меня все win1251...
Вот скрипт:

Код: Выделить всё

SET TERM ^ ;

ALTER PROCEDURE PR_NORMA_SQUARE (
    INSQUARE FLOAT,
    INCHELNUM SMALLINT,
    INN_PRICE FLOAT,
    INPO_FAKTU DOUBLE PRECISION)
RETURNS (
    OUTLGOTA DOUBLE PRECISION)
AS
begin
  /*Если проживает 1 человек или никто не проживает*/
  if (inchelnum <= 1) then
    begin /*Если входит в соц. норму*/
      if (insquare <= 33) then outlgota = :inpo_faktu/2; else outlgota = :inn_price * 16.5;
    end
 /*Если проживает 2 человека*/
  if (inchelnum = 2) then
    begin /*Если входит в соц. норму*/
      if (insquare <= 42) then outlgota = :inpo_faktu/:inchelnum/2*:inn_price; else outlgota = :inn_price * 10.5;
    end
 /*Если проживает 3 и более человек*/
  if (inchelnum >= 3) then
    begin /*Если входит в соц. норму*/
      if (insquare <= (:inchelnum*18)) then outlgota = :inpo_faktu/:inchelnum/2*:inn_price; else outlgota = :inn_price * 9;
    end
  suspend;
end

^

SET TERM ; ^

DESCRIBE PARAMETER OUTLGOTA PROCEDURE PR_NORMA_SQUARE 'Выходной параметр - величина льготы за услугу';
DESCRIBE PARAMETER INSQUARE PROCEDURE PR_NORMA_SQUARE 'Общая площадь';
DESCRIBE PARAMETER INCHELNUM PROCEDURE PR_NORMA_SQUARE 'Количество проживающих';
DESCRIBE PARAMETER INN_PRICE PROCEDURE PR_NORMA_SQUARE 'Тариф для начисления';
DESCRIBE PARAMETER INPO_FAKTU PROCEDURE PR_NORMA_SQUARE 'Фактическое начисление за услугу';



Re: Скрипт не любит слово Describe? Или русский язык?

Добавлено: 19 дек 2005, 09:02
Dimitry Sibiryakov
Solo писал(а):При запуске дает ошибку, что не распознана команда DESCRIBE. Кстати, если запускаю в редакторе скриптов IB_Expert-а, тоже такую же ошибку дает. А если убираю дескрайбы переменных, то-есть стираю вообще - тогда скрипт выполняется без разговоров.
FB 1.52, D6, XP и 2000pro.
А почему ты думаешь что FB должно поддерживать нестандартные ораклятые расширения SQL? В FB2 есть описания, но они звучат как "COMMENT ON..."
Solo писал(а): Может, описания на русском ему не нравится? У меня все win1251...
Не должны. IBO все-таки не Сишная библиотека чтобы русскую 'я' путать с EOF...

Re: Скрипт не любит слово Describe? Или русский язык?

Добавлено: 19 дек 2005, 09:32
Solo
Dimitry Sibiryakov писал(а): А почему ты думаешь что FB должно поддерживать нестандартные ораклятые расширения SQL? В FB2 есть описания, но они звучат как "COMMENT ON..."
***
Не должны. IBO все-таки не Сишная библиотека чтобы русскую 'я' путать с EOF...
Я, честно гря, не думаю. Стыдно признаться, но за меня IB_Express думает. Он же для interbasa-firebirda, ведь правильно? Я просто меняю код процедуры, потом нажимаю кнопу с молнией, эксперт генерит код, я его копирую и посылаю заказчику. Заодно и сам учусь Они его запускают, и скрипт "посылает их" :roll:
Ну, потом-то я просто стал удалять эти строки после тестирования...

А нельзя ли поподробнее про коммент он? :oops:

Re: Скрипт не любит слово Describe? Или русский язык?

Добавлено: 19 дек 2005, 10:26
hvlad
Solo писал(а):Я, честно гря, не думаю. Стыдно признаться, но за меня IB_Express думает. Он же для interbasa-firebirda, ведь правильно? Я просто меняю код процедуры, потом нажимаю кнопу с молнией, эксперт генерит код, я его копирую и посылаю заказчику.
DESCRIBE - это собственное расширение IBExpert. ibescript его понимает.
Solo писал(а):А нельзя ли поподробнее про коммент он? :oops:
Релизноты читай

Добавлено: 21 фев 2006, 10:51
bruha
Была та же проблема, пока не вышел 2005й IBExpert
теперь это вот как происходит:

UPDATE RDB$RELATIONS R SET
R.RDB$DESCRIPTION = 'траляля'
WHERE (R.RDB$RELATION_NAME = 'имя_таблицы') and (r.rdb$view_source is null);