Очистка запросов к SQLite силами Lazarus/FPC

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Очистка запросов к SQLite силами Lazarus/FPC

Сообщение Nik » 11.08.2010 17:51:38

Суть проблемы: работаю из Lazarus с базой SQLite (с помощью вот этого класса - но это не суть важно). База обслуживается десятком диалогов с полусотней полей для ввода данных. Нужно обезопасить вводимые данные на предмет их SQL-корректности. Традиционный алгоритм escape_string (экранирование при помощи /) в случае с SQLite не катит - этот движок посылает запросы с бэкслешем нафиг.
Пытался решить вопрос путём внедрения в свой класс-обёртку функции, заменяющей все лишние символы в запросах на что-нибудь корректное (а часть мусора просто удаляющую), но тут другая проблема - те же кавычки в запросах могут быть как ошибкой, так необходимой частью.
Остаётся, вроде как, только вызывать этот самый аналог escape_string для каждой строки, передаваемой из TEdit в обработчик запросов, но полей, как я уже сказал, очень много. Вот думаю, может есть вариант попроще? Может кто поделиться опытом/идеями?
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Очистка запросов к SQLite силами Lazarus/FPC

Сообщение Odyssey » 11.08.2010 18:31:28

Чтобы спрятать экранирование и вырезание символов, можно написать аналог функции Format, который для каждого аргумента вызовет функцию экранирования/очистки. И дальше конструировать запросы с помощью этой функции.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

Рейтинг@Mail.ru