?спользование параметров в запросе
Материал из 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).