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

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Solo
Сообщения: 108
Зарегистрирован: 18 апр 2005, 04:05

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

Сообщение Solo » 19 дек 2005, 08:15

Мое приложение предусматривает запуск скриптов (один из них приведен ниже). Использую компоненты библиотеки 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 'Фактическое начисление за услугу';



Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

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

Сообщение Dimitry Sibiryakov » 19 дек 2005, 09:02

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

Solo
Сообщения: 108
Зарегистрирован: 18 апр 2005, 04:05

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

Сообщение Solo » 19 дек 2005, 09:32

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

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

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

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

Сообщение hvlad » 19 дек 2005, 10:26

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

bruha
Сообщения: 3
Зарегистрирован: 21 фев 2006, 10:17

Сообщение bruha » 21 фев 2006, 10:51

Была та же проблема, пока не вышел 2005й IBExpert
теперь это вот как происходит:

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

Ответить