?спользование параметров в запросе

Материал из GedeminWiki
Версия от 18:39, 21 марта 2007; SYSDBA (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Вопрос: как лучше передавать в SQL запрос параметр:

 if CONTACTKEY(0) > 0 then _
   S = S & " AND rec.USR$CONTACTKEY = " & CSTR(contactkey(0))

или

 if CONTACTKEY(0) > 0 then _
   S = S & " AND rec.USR$CONTACTKEY = :contact" 
 
 if CONTACTKEY(0) > 0 then _
   q.ParamByName("contact").Asinteger = contactkey(0)

Ответ: второй вариант лучше. Запрос перед выполнением каждый раз компилируется сервером и это занимает время. В первом случае -- каждый новый ContactKey будет приводить к новому запросу, новой компиляции и т.д. Во втором случае -- запрос всегда один и тот же. Кстати, при использовании оператора & нет смысла приводить к строке, так как этот оператор уже сам по себе обозначает приведение к строке. Можно сказать, что выражение B & A эквивалентно B + CStr(A).

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты