Что произойдет, если я вызову ParamByName для параметра, которого не существует?
-
28-10-2019 - |
Вопрос
Я новичок в Delphi и получил следующий фрагмент кода (без некоторых нерелевантных частей), для которого я пытаюсь понять, что он делает:
родовое словоВ другом файле этот запрос используется, но добавляется параметр, который не определен в запросе.
родовое слово Изменяет ли этот параметр 'part'
что-нибудь в сделанном выборе?Другими словами: автоматически ли SQL-запрос изменяется на следующий?
Решение
Это означает, что оператор SQL может быть изменен во время выполнения.поэтому, когда этот запрос используется, SQL уже содержит генерирующий код тега.
Если оператор SQL не содержит этого дополнительного параметра AND part = :part
, при назначении кода part
возникает исключение.
Я предполагаю, что вы не перепутали ссылку на ParamByName('part').Value := 1
(которая находится в SelectCosts
, а не в другом DM).
Другие советы
Следующий оператор в вашем сообщении не добавляет параметр, он устанавливает его значение:
родовое словоЧтобы добавить параметр во время выполнения, используйте CreateParam следующим образом:
родовое словоЗапрос не изменяется автоматически, вы должны сделать это самостоятельно.
В вашем первом фрагменте ParamType и InputType не определены, вы можете изменить это в IDE, открыв редактор свойств списка параметров (Params) и обновив эти значения.
Добавление нового параметра не меняет запрос.Вы должны сделать это сами.