【问题标题】:EDataBase error with ClientDataset parameter not found未找到带有 ClientDataset 参数的 EDataBase 错误
【发布时间】:2013-11-22 05:39:53
【问题描述】:

我在我的项目中向客户添加了新的TClientDataset。我还有一个 Oracle 存储过程,它以 clientid 作为输入并返回游标。

下面的代码在按钮点击时执行

with dmMain.cdsGetV do //cdsGetV is name of Clientdataset
begin 
  if Active then Close;
  Params.Clear; 
  FetchParams;
  Params.ParamByName('PCLIENTID').AsString := '0022995544';
  Open;
end;

点击时出现错误:`

cdsGetV:未找到参数“pclientid”。

还有许多其他类似的客户端数据集,它们运行良好。我复制了与那些 cd 完全相同的代码,但它仍然无法正常工作。知道有什么问题吗?

【问题讨论】:

  • 要么您的 fetchparams 不返回参数,要么您的存储过程不返回一个称为 pclientid 的参数。比较一个有效的组合和一个无效的组合。您可能忽略了一些差异。
  • 我尝试在 sql 块中执行过程。它工作正常。如何查看 FetchParams?
  • 在 fetchparams 之后在 IDE 中检查 params.count、params[0].... 等
  • 要保持独立于提供商,您可以尝试Params.ParseSQL(Commandtext,true); Params.ParamByName('PCLIENTID').DataType := ftString; 而不是FetchParams;
  • param count=1,也就是只返回cursor,还必须有另一个输入参数pclientid。为什么会这样?

标签: delphi tclientdataset


【解决方案1】:

我在服务器上重新创建了 clientdataset 和 datasetprovider,现在它可以工作了。

【讨论】:

    猜你喜欢
    • 2021-04-13
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2012-12-05
    • 2021-06-26
    • 1970-01-01
    相关资源
    最近更新 更多