【问题标题】:Delphi - Clear Param Data for TADOStoredProcDelphi - 清除 TADStoredProc 的参数数据
【发布时间】:2016-10-31 10:02:32
【问题描述】:

对于 BDE,我们可以清除参数数据,如下所示。

 with tstoredproc do
    begin
    .
    .
      for i := 0 to ParamCount - 1 do Params[i].Clear;
    .
    .

    end

如何为 ADO 数据集做同样的事情?我不想创建参数。我正在使用 TADOStoredProc 组件,它具有所有参数。我只需要清除数据并分配新数据。

with TADoStoredProc do
begin
.
.
 for i := 0 to ParamCount - 1 do Parameters[i].Value := null; -- is this right? or can i use below line of code
 Parameters.Refresh
.
.
end;

【问题讨论】:

  • @kobik : MySP.Parameters.Clear 正在删除所有参数。所以系统抛出错误参数未找到错误。

标签: delphi delphi-7


【解决方案1】:

BDE TParam.Clear 为参数的数据成员设置Unassigned

我只需要清除数据并分配新数据

为什么首先需要清除数据/值?只需分配新值。

如果您需要将null 显式传递给存储过程参数,您可以使用例如

Parameters[i].Value := Unassigned

【讨论】:

  • 在某些情况下,我需要通过传递不同的值一次又一次地调用相同的存储过程。所以我想先设置空值,然后分配值并打开数据集(AdoQuery/ADoStoredProc)。
  • @DelphiLearner 是多余的。您无需将之后要为其分配非空值的参数设为空。
  • @RemyLebeau:我不会分配所有值。存储过程有 8 个参数。根据我要分配参数值的条件。并且对于每次调用,它都会更改参数值。所以在分配值之前,我想将它们分配给 NULL。如果在这种情况下也不需要分配 null,请告诉我。我将删除该代码。
  • @DelphiLearner:同样,您不需要将 null 分配给要为其分配非 null 值的参数。那只是浪费时间和精力。对于每个参数,如果您有一个新值,则分配该值,否则分配 null。重复 8 次。完成。
  • @RemyLebeau:非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-26
  • 2015-09-08
  • 2021-01-21
  • 1970-01-01
相关资源
最近更新 更多