15 авг. 2013 г.

День сурка -- это 15 лет работы с молодыми программистами. Раз за разом приходится объяснять очевидные вещи. Например, что нельзя формировать SQL запрос из кусочков текста, используя функции преобразования DateToStr, FloatToStr и т.п. Указанные функции при форматировании результата используют локальные региональные установки, которые могут не совпадать с требованиями стандарта SQL. Так, Firebird понимает дату из строки вида 'dd.mm.yyyy', а на компьютере пользователя может быть установлен формат 'dd-mm-yyyy'. Хуже всего, когда на машине разработчика локальный формат удовлетворяет сервер, а на компьютере клиента -- нет.

С функциями конвертации типов понятно. А строки? Строки вставлять категорически запрещается. Во-первых, наличие одинарных кавычек во вставляемом значении приведет либо к синтаксической ошибке, либо к неверной выборке. Во-вторых, см. SQL Injection.

Комментариев нет:

Отправить комментарий