powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Отладка ХП и условие в SELECT
14 сообщений из 14, страница 1 из 1
Отладка ХП и условие в SELECT
    #39514942
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При отладке ХП заметил, что IBE не заходит в цикл FOR SELECT, хотя при обычном выполнении он отрабатывает. Анализ показал, что это из-за условия (AMP.COST_CUBIC_METRE = :COST_CUBIC_METRE). Поле COST_CUBIC_METRE и параметр имеют тип NUMERIC(9,5). C NUMERIC(18, 2) подобной проблемы не замечалось.
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39515340
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тестовый пример мне самому сочинять? Я не буду, я лентяй.
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39515446
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

При тесте выяснилось, что даже в случае 9.2 сравнение не срабатывает.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE TESTTABLE (
    ID    INTEGER NOT NULL,
    VAL   NUMERIC(9,5) NOT NULL,
    VAL2  NUMERIC(9,2) NOT NULL,
    VAL3  NUMERIC(9,0) NOT NULL
);

COMMIT;

INSERT INTO TESTTABLE (ID, VAL, VAL2, VAL3)
               VALUES (1, 5, 5, 5);
INSERT INTO TESTTABLE (ID, VAL, VAL2, VAL3)
               VALUES (2, 5.5, 5.5, 6);
INSERT INTO TESTTABLE (ID, VAL, VAL2, VAL3)
               VALUES (3, 5.12345, 5.12, 5);
COMMIT;



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
EXECUTE BLOCK
AS
DECLARE VARIABLE ID INTEGER;
DECLARE VARIABLE VAL NUMERIC(9,5);
BEGIN
--    VAL = 5.0;-- Входит в цикл
    VAL = 5.5;-- Не входит в цикл

    FOR SELECT
        T.ID
    FROM
        TESTTABLE T
    WHERE
        T.VAL2 = :VAL
    INTO
        :ID
    DO
    BEGIN
        ID = :ID;
    END
END
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39516247
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправил.
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39517901
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В версии 2017.9.6.1 у всех параметров и переменных ХП отображается DECFLOAT вместо реального домена:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR ALTER PROCEDURE OPER$RECEIPT$RETURN (
    ID_RETURNED_RECEPT DECFLOAT(34) NOT NULL,
    ID_SOURCE DECFLOAT(34) NOT NULL,
    DATE_ACCOUNT DECFLOAT(34) NOT NULL,
    PAYMENT_ORDER DECFLOAT(34),
    COMMENT DECFLOAT(34))
AS
DECLARE VARIABLE ID_BATCH DECFLOAT(34);
DECLARE VARIABLE ID_RECEIPT DECFLOAT(34);
BEGIN
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39518365
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxВ версии 2017.9.6.1 у всех параметров и переменных ХП отображается DECFLOAT вместо реального домена:


Это где именно? Какая версия сервера?
DECFLOAT - это из FB 4.
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39518606
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

В ленивом режиме редактирования хп, например. Fb 2.5 как реальный, так и в настройках ibe.
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39518616
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня не воспроизводится.
Как на самом деле выглядит заголовок процедуры? В базе есть домен с именем DECFLOAT?
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39518625
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

Заголовок ХП в версии 2017.8.22.1 выглядит вот так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR ALTER PROCEDURE OPER$RECEIPT$RETURN (
    ID_RETURNED_RECEPT DOM$KEY NOT NULL,
    ID_SOURCE DOM$KEY NOT NULL,
    DATE_ACCOUNT DOM$DATE NOT NULL,
    PAYMENT_ORDER DOM$NUMBER_PAYMENT_ORDER,
    COMMENT DOM$COMMENT)
AS
DECLARE VARIABLE ID_BATCH DOM$KEY;
DECLARE VARIABLE ID_RECEIPT DOM$KEY;
BEGIN


Доменов с текстом %FLOAT% нет.
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39518628
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

а что IBE уже научился понимать DECFLOAT?
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39518629
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправил.
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39518631
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениса что IBE уже научился понимать DECFLOAT?

Частично. Т.е., парсер уже понимает, в списке типов DECFLOAT есть, извлечение метаданных знает про него.
Но данные без SET DECFLOAT вывести пока не получится.

SQL SECURITY для таблиц/процедур и т.д. тоже уже поддерживается частично.
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39518810
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

ключевые и зарезервированные слова для 4.0 которые не подсвечиваются

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
-- timout
SESSION
IDLE
TIMEOUT
-- error handlers
RDB$ERROR
-- security
RDB$SYSTEM_PRIVILEGE
RDB$ROLE_IN_USE
PRIVILEGE
-- decfloat
COMPARE_DECFLOAT
NORMALIZE_DECFLOAT
QUANTIZE
-- window functions
PRECEDING
UNBOUNDED
FOLLOWING
RANGE
WINDOW
PERCENT_RANK
CUME_DIST
NTILE
-- identity
OVERRIDING
SYSTEM
...
Рейтинг: 0 / 0
Отладка ХП и условие в SELECT
    #39531158
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

теперь ещё и NUMERIC(34, x) и DECIMAL(34, x) на основе DECFLOAT(34)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Отладка ХП и условие в SELECT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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