Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Как проверить корректность синтаксиса SQL-выражения / 17 сообщений из 17, страница 1 из 1
01.02.2006, 13:54
    #33515981
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить корректность синтаксиса SQL-выражения
Вопрос в следующем:
Каким образом можно для IDS (7.31, 9.4) проверить корректность синтаксиса SQL-выражения?
...
Рейтинг: 0 / 0
01.02.2006, 13:55
    #33515988
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить корректность синтаксиса SQL-выражения
Опробованные варианты: 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
01.02.2006, 13:57
    #33515995
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить корректность синтаксиса SQL-выражения
Никак.
Но можно сказать describe (prepare) select * from new_temp - синтаксис коректен, а вывалит ошибку таблица не существует.
...
Рейтинг: 0 / 0
01.02.2006, 14:02
    #33516022
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить корректность синтаксиса SQL-выражения
АнатоЛойОпробованные варианты: Delphi 5 + BDE + TQuery.Prepare
Кстати, похоже, что любимый eSQLEditor проверку синтаксиса по тому же принципу организовывает :) Но при попытке выполнить проверку для текста, представляющего собой число - молчит как рыба :(Число наверно не только проверить, но и выполнить можно -- тоже будет молчать как рыба, если мне память не изменяет. Можно пофиксить проблем нет.
Вот здесь лежит парсер http://myinformix.narod.ru/misc/misc.html можно проверить почему.


АнатоЛой
Есть вариант: считать что если мы не получили (-201 Syntaх error has occured) - то синтаксис как раз правильный несмотря на остальные ошибки.
Ещё мысли есть?А нужно?
Как на ваш взгляд "select * from a where" правильный синтаксис?
...
Рейтинг: 0 / 0
01.02.2006, 14:10
    #33516067
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить корректность синтаксиса SQL-выражения
Журавлев Денис
Вот здесь лежит парсер http://myinformix.narod.ru/misc/misc.html можно проверить почему.Почитал парсер число завершенное ";" похоже выполнить не удастся.
...
Рейтинг: 0 / 0
01.02.2006, 16:00
    #33516580
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить корректность синтаксиса SQL-выражения
Журавлев Денис АнатоЛой
Есть вариант: считать что если мы не получили (-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
01.02.2006, 16:04
    #33516598
АнатоЛой
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как проверить корректность синтаксиса SQL-выражения
Журавлев ДенисВот здесь лежит парсер http://myinformix.narod.ru/misc/misc.html можно проверить почему.

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

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


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

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

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


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