powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Парсер: одинаковое имя поля и параметра
4 сообщений из 4, страница 1 из 1
Парсер: одинаковое имя поля и параметра
    #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
Парсер: одинаковое имя поля и параметра
    #40009710
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

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

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



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

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


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