powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как проверить корректность синтаксиса SQL-выражения
17 сообщений из 17, страница 1 из 1
Как проверить корректность синтаксиса SQL-выражения
    #33515981
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос в следующем:
Каким образом можно для IDS (7.31, 9.4) проверить корректность синтаксиса SQL-выражения?
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33515988
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опробованные варианты: Delphi 5 + BDE + TQuery.Prepare
Имеем маленький отрицательный результат:
для
Код: plaintext
SELECT * FROM systables
ответ положительный,
а для
Код: plaintext
SELECT * FROM systables2
ответ отрицательный.
(-206 table is not in the database...).

Кстати, похоже, что любимый eSQLEditor проверку синтаксиса по тому же принципу организовывает :) Но при попытке выполнить проверку для текста, представляющего собой число - молчит как рыба :(

Есть вариант: считать что если мы не получили (-201 Syntaх error has occured) - то синтаксис как раз правильный несмотря на остальные ошибки.
Ещё мысли есть?
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33515995
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никак.
Но можно сказать describe (prepare) select * from new_temp - синтаксис коректен, а вывалит ошибку таблица не существует.
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33516022
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойОпробованные варианты: Delphi 5 + BDE + TQuery.Prepare
Кстати, похоже, что любимый eSQLEditor проверку синтаксиса по тому же принципу организовывает :) Но при попытке выполнить проверку для текста, представляющего собой число - молчит как рыба :(Число наверно не только проверить, но и выполнить можно -- тоже будет молчать как рыба, если мне память не изменяет. Можно пофиксить проблем нет.
Вот здесь лежит парсер http://myinformix.narod.ru/misc/misc.html можно проверить почему.


АнатоЛой
Есть вариант: считать что если мы не получили (-201 Syntaх error has occured) - то синтаксис как раз правильный несмотря на остальные ошибки.
Ещё мысли есть?А нужно?
Как на ваш взгляд "select * from a where" правильный синтаксис?
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33516067
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис
Вот здесь лежит парсер http://myinformix.narod.ru/misc/misc.html можно проверить почему.Почитал парсер число завершенное ";" похоже выполнить не удастся.
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33516580
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис АнатоЛой
Есть вариант: считать что если мы не получили (-201 Syntaх error has occured) - то синтаксис как раз правильный несмотря на остальные ошибки.
Ещё мысли есть?А нужно?
Как на ваш взгляд "select * from a where" правильный синтаксис?
На мой взгляд
Код: plaintext
select * from a where
- неправильный. О чём и сообщит (-201 Syntaх error has occured).
А вот
Код: plaintext
select * from a where b= 1  
правильный - независимо от БД, на которой я его выполняю :) Поэтому я или не получу сообщение об ошибке , либо получу что то из перечня типа "а нету", "b - нету", "ошибка приведения типов (b к 1)", и т.д.
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33516598
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисВот здесь лежит парсер http://myinformix.narod.ru/misc/misc.html можно проверить почему.

А вот ссылочка там
synhighlightersql.pas (~44 кб).
какая-то неправильная :( "0 байт"
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33516735
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой Журавлев ДенисВот здесь лежит парсер http://myinformix.narod.ru/misc/misc.html можно проверить почему.

А вот ссылочка там
synhighlightersql.pas (~44 кб).
какая-то неправильная :( "0 байт"Перезалил. Странно как-то год назад лежало, сейчас пропало.
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33516744
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойНа мой взгляд
Код: plaintext
select * from a where
- неправильный. О чём и сообщит (-201 Syntaх error has occured).Ты проверял? Тут вообще ошибки нет.


АнатоЛойА вот
Код: plaintext
select * from a where b= 1  
правильный - независимо от БД, на которой я его выполняю :) Поэтому я или не получу сообщение об ошибке , либо получу что то из перечня типа "а нету", "b - нету", "ошибка приведения типов (b к 1)", и т.д.Я подумаю об этом.
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33516765
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это синтаксически корректно?:

Код: plaintext
1.
select f0 from
from my_strange_table
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33517234
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис АнатоЛойНа мой взгляд
Код: plaintext
select * from a where
- неправильный. О чём и сообщит (-201 Syntaх error has occured).Ты проверял? Тут вообще ошибки нет.
Проверял. И у себя в eSQLEditor'е - (-201). Или Вы про парсер? Тогда не проверял :)
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33517236
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис АнатоЛойА вот
Код: plaintext
select * from a where b= 1  
правильный - независимо от БД, на которой я его выполняю :) Поэтому я или не получу сообщение об ошибке , либо получу что то из перечня типа "а нету", "b - нету", "ошибка приведения типов (b к 1)", и т.д.Я подумаю об этом.
От меня вопрос был "вобщем", а не к eSQLEditor'у :)
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33517318
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисЭто синтаксически корректно?:

Код: plaintext
1.
select f0 from
from my_strange_table

Informix говорит: "-206 Table (from) not in the database"
А хотелось бы "-201 Syntax error", поскольку "from" - зарезервированное слово, и его нельзя использовать в качестве имени таблицы...
Мда-а-а-а. Есть над чем задуматься...

Опять же таки, получается, что в один и тот же момент времени для одного пользователя запрос
Код: plaintext
select f0 from my_tmp_table
будет корректным, если в его сессии есть эта временная таблица, а для другого пользователя - некорректным - если у него такой временной таблицы по какой-то причине нет....

Значит, как минимум, PREPARE не даёт ответ на тот вопрос, который мне хотелось бы получить... :(
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33760876
Broun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Журавлев Денис
А как вообще eSQLEditor проверяет синтаксис, как указывает ошибочное место запроса? В парсере ничего подобного нет. Это еще какой-то внутренний парсер или средства Информикса/библиотек доступа?
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33764707
Сервер сам проверяет и выдает информацию...
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33767857
ak-47
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как получить эту информацию?
...
Рейтинг: 0 / 0
Как проверить корректность синтаксиса SQL-выражения
    #33773631
Смотри описание структуры sqlca, а имеено sqlca.sqlerrd[4], если мне память не изменяет. Давно это было, когда sql редактор для сервер студио писал (виндовой версии). Тогда тоже дилема была: был написан для дебагера парсер хранимых процедур и можно было его использовать, но через сервер проще, быстрее и надежнее показалось, к тому же изменения синтаксиса сам сервер отслеживает :)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как проверить корректность синтаксиса SQL-выражения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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