Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Парсер: одинаковое имя поля и параметра / 4 сообщений из 4, страница 1 из 1
19.10.2020, 09:38
    #40009705
CyberMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер: одинаковое имя поля и параметра
Александр, вы можете добавить в парсер Warning для случаев, когда делается выборка из таблицы и поле имеет такое же имя, что и параметр ХП/функции?
Таблица и ХП:
Код: sql
1.
2.
3.
4.
5.
6.
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);


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
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
...
Рейтинг: 0 / 0
19.10.2020, 09:45
    #40009710
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер: одинаковое имя поля и параметра
CyberMax,

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

Код: sql
1.
 ID_RECORD = (SELECT T.ID FROM SIMPLE_TABLE T WHERE T.DATE_ACCOUNT = DATE_ACCOUNT);



но это надо не на уровне эксперта, а скорее сервера. Остальные запросы правильные и в некоторых случаях вполне логичные. А то так можно и до предупреждения насчёт 1=1 дойти.
...
Рейтинг: 0 / 0
19.10.2020, 09:52
    #40009711
CyberMax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер: одинаковое имя поля и параметра
Симонов Денис,

Да, условия 1 = 1 и прочие Always True валидны с точки зрения логики, сервера и синтаксиса, поэтому их нельзя отрубать на уровне сервера. Но предупредить пользователя было бы неплохо.
...
Рейтинг: 0 / 0
19.10.2020, 09:54
    #40009713
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Парсер: одинаковое имя поля и параметра
Я этим заниматься не буду, потому что возни здесь мне видится неадекватно много потенциальному выхлопу.
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Парсер: одинаковое имя поля и параметра / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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