gpt4 book ai didi

database - Delphi:如何获取存储过程的输出参数的值?

转载 作者:太空狗 更新时间:2023-10-30 01:47:14 25 4
gpt4 key购买 nike

我想在 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:如何获取存储过程的输出参数的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1242161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com