Delphi   发布时间:2022-04-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了database – Delphi:如何获取存储过程的输出参数的值?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在Delphi中以编程方式创建一个SQLDataSet,并使用它来执行存储过程并获取输出参数的值.看起来很简单,但我不能让它工作.

这是SQL Server中的一个哑存储过程:

CREATE PROCEDURE [dbo].getValue  @x INT OUTPUT
AS
BEGIN
  SET @x = 10;
END

现在,这是我尝试过但不起作用的变体之一:

proc := TSQLDataSet.Create(nil);
proc.SQLConnection := DefaultConnection;
proc.CommandText := 'getValue';
proc.Params.CreateParam(ftInteger,'@x',ptOutput);
proc.Params.ParamByName('@x').Value := 0;
proc.ExecSQL(False);
value := newIdProc.Params.ParamByName('@x').AsInteger;

我认为这很容易,但是围绕这个问题有一些registred bugs.

解决方法

看起来如果你设置CommandType和SchemaName并且不创建Param它是有效的:
proc := TSQLDataSet.Create(nil);
proc.SQLConnection := DefaultConnection;

proc.CommandType := ctStoredProc;
proc.SchemaName  := 'dbo';
proc.CommandText := 'getValue';

proc.ExecSQL(False);

value := proc.Params.ParamByName('@x').AsInteger;

大佬总结

以上是大佬教程为你收集整理的database – Delphi:如何获取存储过程的输出参数的值?全部内容,希望文章能够帮你解决database – Delphi:如何获取存储过程的输出参数的值?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: