powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не получается корректная проверка SQL-запроса через DOA на C++Builder5
4 сообщений из 4, страница 1 из 1
Не получается корректная проверка SQL-запроса через DOA на C++Builder5
    #32389962
sergejh_hr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу построитель, работа с СУБД Oracle. Проверку делаю такой функцией:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
void __fastcall TfQuery::CheckQuery()
{
 //Проверка запроса
 //qq - это TOracleQuery

   qq->DeleteVariables();
   qq->SQL->Text = reMain->Lines->Text;

     try
     {
        qq->Describe();

        //qq->Execute();
        //fMain->os->Rollback();

        ShowMessage( "Запрос корректный!" );

     }
     catch(EOracleError &er)
     {
      ShowMessage(er.Message);
     }
}


Как видно, сначала я сделал через функцию Describe(), которая, судя по документации, получает описание полей запроса без его реального выполнения. То есть, если запрос неправильный, то она вернет ошибку, а значит, ей можно проверить корректность запроса. Но дело в том, что выполняя эту функцию для SQL-предложения типа INSERT INTO ... при любых ошибках (лишние запятые и т.п.) describe() все равно возвращает true. Как будто она работает только для SELECT. Но это же не дело...

Тогда я сделал через Execute(), а затем Rollback сессии. В этом случае все отрабатывает как надо, но проблема в возможном наличии bind-переменных в запросе. Если при выполнении я предлагаю их ввести, если не были введены ранее, то при проверке не буду же я снова пихать этот кусок кода? При проверке запроса пользователь не должен думать о bind-переменных, которые у него есть или нет. Запрос должен провериться на синтаксис PL/SQL и все.

Других функций в DOA я не нашел. Вопрос: что посоветуете?
...
Рейтинг: 0 / 0
Не получается корректная проверка SQL-запроса через DOA на C++Builder5
    #32392208
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как же esceptions ??

хотите сказать если запрос не правильный они что не возникают всмусле есепшены ?
____
...
Рейтинг: 0 / 0
Не получается корректная проверка SQL-запроса через DOA на C++Builder5
    #32400324
sergejh_hr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если запрос вида INSERT INTO... или DELETE, то exceptions не возникают. Проверь сам. :)
...
Рейтинг: 0 / 0
Не получается корректная проверка SQL-запроса через DOA на C++Builder5
    #32401520
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогды не знаю я с Ораклом и DAO не работал .. :(
____
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не получается корректная проверка SQL-запроса через DOA на C++Builder5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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