1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Проверка Sql запроса

Тема в разделе "Lotus - Программирование", создана пользователем kiruxan, 29 окт 2009.

  1. kiruxan

    kiruxan Гость

    Репутация:
    0
    Добрый день!

    Незнает ли кто нибудь случаем как лучше проверить синтаксис sql запроса в LotusScript агенте перед выполнением? Используется субд db2 общение с базой происходит при помощи класса LCConnection. Результаты запросов получаются такие не слабые в несколько тысяч строк, поэтому проверить синтаксис попыткой выполнить запрос как-то не очень...
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Репутация:
    0
    Регистрация:
    4 окт 2007
    Сообщения:
    3.360
    Симпатии:
    2
    молодой человек, если ты получаешь результат при "неправильном запросе", то, значит, проверка синтаксиса тебе не поможет.
    если бы синтаксис был неверным, то результата бы не было.
    если возвращаются не те данные, которые ты надеешься получить, то ошибка в логике запроса! а не синтаксисе :)

    если просто надо составить скрипты и проверять их синтаксис на этапе составления, то лучше использовать какую-то утилиту для работы с SQL, а потом переносить скрипты в нужное место.
     
  3. kiruxan

    kiruxan Гость

    Репутация:
    0
    А что если в некоторых ситуациях запросы вводит пользователь (о безопасности говорить не надо!) и надо проверить соответствует введенное синтаксису sql или нет...
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Репутация:
    0
    Регистрация:
    4 окт 2007
    Сообщения:
    3.360
    Симпатии:
    2
    ну, если не соотв., то при попытке выполнения будет ошибка, а если соотв., но логически неверен, то - проблема составителя.
    в любом случае, независимо от кол-ва результата, необходимо выполнять проверку запроса.
    тут разве что можно посоветовать использовать ограничение возвращаемого кол-ва в самом запросе, но повлияет ли это на производительность запроса в лучшую сторону не могу сказать (например, http://www.w3schools.com/Sql/sql_top.asp )
    ну, либо, может быть кто-то еще что-то посоветует :)

    не знаю как о безопасности, но о квалификации такого пользователя явно стоит подумать )) причем не разработчику, а тому, кто этого пользователя туда пускает :)
     
  5. kiruxan

    kiruxan Гость

    Репутация:
    0
    К сожалению db2 функция top не ведома, надо считать с помощью rowcount.
     
  6. Akupaka

    Akupaka А че я?.. О.о

    Репутация:
    0
    Регистрация:
    4 окт 2007
    Сообщения:
    3.360
    Симпатии:
    2
    к сожалению, я плохо знаком с сиквелом, но есть ведь инет! :)
    вот к примеру пишут:
    http://blogs.claritycon.com/blogs/satish_v.../02/15/220.aspx

    вот. только в твоем случае, вероятно, следует избегать ORDER BY, что должно выводить лишь первые N-записей в таблице, без предварительного поиска и сортировки среди всех записей таблицы! думаю, что это сильно повлияет на скорость!
    можешь даже проверить и сказать нам результат! :)
     
Загрузка...

Поделиться этой страницей