Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBExpert Новый топик    Ответить
 Парсер: одинаковое имя поля и параметра  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1435
Александр, вы можете добавить в парсер Warning для случаев, когда делается выборка из таблицы и поле имеет такое же имя, что и параметр ХП/функции?
Таблица и ХП:
CREATE TABLE SIMPLE_TABLE (
    ID            INTEGER NOT NULL,
    DATE_ACCOUNT  DATE NOT NULL
);

ALTER TABLE SIMPLE_TABLE ADD CONSTRAINT PK_SIMPLE_TABLE PRIMARY KEY (ID);

CREATE OR ALTER PROCEDURE TEST_AMBIG (
    DATE_ACCOUNT DATE)
AS
DECLARE VARIABLE ID_RECORD INTEGER;
BEGIN
    ID_RECORD = (SELECT T.ID FROM SIMPLE_TABLE T WHERE T.DATE_ACCOUNT = :DATE_ACCOUNT);-- OK
    ID_RECORD = (SELECT T.ID FROM SIMPLE_TABLE T WHERE T.DATE_ACCOUNT = DATE_ACCOUNT);-- WARNING
    ID_RECORD = (SELECT ID FROM SIMPLE_TABLE WHERE DATE_ACCOUNT = DATE_ACCOUNT);--WARNING
    ID_RECORD = (SELECT DATE_ACCOUNT FROM SIMPLE_TABLE WHERE DATE_ACCOUNT = :DATE_ACCOUNT);--WARNING
END
19 окт 20, 09:38    [22216525]     Ответить | Цитировать Сообщить модератору
 Re: Парсер: одинаковое имя поля и параметра  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10703
CyberMax,

зачем? Все запросы валидны не только с точки зрения синтаксиса, но и логики, хотя вот здесь согласен

 ID_RECORD = (SELECT T.ID FROM SIMPLE_TABLE T WHERE T.DATE_ACCOUNT = DATE_ACCOUNT);


но это надо не на уровне эксперта, а скорее сервера. Остальные запросы правильные и в некоторых случаях вполне логичные. А то так можно и до предупреждения насчёт 1=1 дойти.
19 окт 20, 09:45    [22216531]     Ответить | Цитировать Сообщить модератору
 Re: Парсер: одинаковое имя поля и параметра  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1435
Симонов Денис,

Да, условия 1 = 1 и прочие Always True валидны с точки зрения логики, сервера и синтаксиса, поэтому их нельзя отрубать на уровне сервера. Но предупредить пользователя было бы неплохо.

Сообщение было отредактировано: 19 окт 20, 09:49
19 окт 20, 09:52    [22216533]     Ответить | Цитировать Сообщить модератору
 Re: Парсер: одинаковое имя поля и параметра  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
Я этим заниматься не буду, потому что возни здесь мне видится неадекватно много потенциальному выхлопу.
19 окт 20, 09:54    [22216536]     Ответить | Цитировать Сообщить модератору
Все форумы / IBExpert Ответить