database – Delphi:如何获取存储过程的输出参数的值?
发布时间:2020-12-15 04:20:12 所属栏目:大数据 来源:网络整理
导读:我想在Delphi中以编程方式创建一个SQLDataSet,并使用它来执行存储过程并获取输出参数的值.看起来很简单,但我不能让它工作. 这是SQL Server中的一个哑存储过程: CREATE PROCEDURE [dbo].getValue @x INT OUTPUTASBEGIN SET @x = 10;END 现在,这是我尝试过但
我想在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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |