parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

MS SQL Native driver

egr 04.11.2008 14:40

Если кому надо - я его немного усовершенствовал:
1. Поправлен ряд багов внесенных при переходе на Unicode (кривые сообщения об ошибках)
2. Добавлена поддержка параметризованных (пока неименованных) запросов.
Что это такое?:
Параметризованный запрос с позиционными параметрами представляет запрос вида:
SELECT c1, c2 FROM t WHERE c1 = ? AND c2 = ?
Где знаки вопроса в запросе и представляют собой ссылки на параметры содержащие данные. Первый знак ссылка на первый параметр, второй на второй и так далее.
Сами параметры передаются с помощью хэша bind. Пример:
$t[^table::sql{SELECT c3, c4 FROM t WHERE c1 = ? AND c2 = ?}[
		$.bind[ 
			$.1[Вася Пупкин]
			$.2(30)
		]
	]
]
Имена ключей хэша соответсвуют позиции параметра в запросе. Если встречается имя которое невозможно преобразовать в число или
его значение выходит за границы диапазона 1-<количество параметров> - выбрасывается исключение.

ВАЖНО: Нумерация параметров начинается с единицы.

Зачем это нужно? Это нужно для защиты от так называемых SQL инъекций, когда данные принимаемые от пользователя вставляются в SQL запрос. Кроме того,
может существовать ограничение на максимально допустимый размер текста запроса за который можно легко выйти
передав в условие WHERE большую строку. Сужествует ещё много способов применений данного типа запросов.

Сделана версия как для 3.3, так и для 3.2 качать как всегда отсюда http://www.egoroff.spb.ru/portfolio/download/

  • MS SQL Native driver, egr 04.11.2008 14:40