我的 Delphi 2006 TADOCommand有
CommandText(包括参数)、 Prepared(真)、 ParamCheck(真)
属性都在设计时设置。
有没有办法让我在运行时删除它的一些参数,而不必更改CommandText以适应这些更改。这在参数引用的某些表列不需要更新/插入的情况下是可取的。
我在想一些类似的事情
TADOCommand.Parameters.ParamByName('MyParam').SafelyRemove;
非常感谢,
邓肯
我的 Delphi 2006 TADOCommand有
CommandText(包括参数)、 Prepared(真)、 ParamCheck(真)
属性都在设计时设置。
有没有办法让我在运行时删除它的一些参数,而不必更改CommandText以适应这些更改。这在参数引用的某些表列不需要更新/插入的情况下是可取的。
我在想一些类似的事情
TADOCommand.Parameters.ParamByName('MyParam').SafelyRemove;
非常感谢,
邓肯
Parameters 集合中的每一项都对应于命令文本中的参数标记。它就像这个标记的 API。从参数中删除项目不会删除相应的标记。如果您不需要触摸命令文本中的某些字段,则必须修改命令文本并删除相应的参数标记。
当命令文本准备好时,DBMS 已经建立了命令执行计划并分配了一些命令执行所需的资源。如果您要更改命令文本,则 DBMS 必须构建新的命令执行计划。
那种...
因为参数占位符 (:PARAMn) 嵌入在 SQL 文本中,所以我看不出如何在不更改 CommandText 的情况下添加或删除参数。你会有不匹配的。
如果命令文本是动态可更新的,我通常使用这样的参数:* Parameters.Clear; 参数.ParseSQL(ADOCommand.CommandText, true); *它将自动创建具有正确参数名称的参数列表。