首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi XE2 停使用 SQLStoredProc1控件 获取不到存储过程返回的参数数据

2013-07-04 
Delphi XE2 下使用 SQLStoredProc1控件 获取不到存储过程返回的参数数据Delphi XE2 下使用 SQLStoredProc1

Delphi XE2 下使用 SQLStoredProc1控件 获取不到存储过程返回的参数数据
Delphi XE2 下使用 SQLStoredProc1控件 获取不到存储过程返回的参数数据
如执行下面存储过程 获取不到@otp的数据


CREATE PROCEDURE Test2
@para1 INT,
@otp MONEY OUTPUT
AS
BEGIN
SELECT * FROM dbo.TestCheck
    SET @otp=100+@para1
END
GO

delphi 下代码

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DBXMSSQL, Data.FMTBcd,
  Vcl.StdCtrls, Vcl.Buttons, Data.DB, Data.SqlExpr, Data.Win.ADODB;

type
  TForm1 = class(TForm)
    SQLConnection1: TSQLConnection;
    SQLStoredProc1: TSQLStoredProc;
    BitBtn1: TBitBtn;
    Edit1: TEdit;
    Edit2: TEdit;
    ADOStoredProc1: TADOStoredProc;
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  SQLStoredProc1.ParamByName('@para1').Value:=Edit2.Text;
  SQLStoredProc1.;
  Edit1.Text:= SQLStoredProc1.ParamByName('@otp').Value;
end;

end.


[解决办法]
  SQLStoredProc1.Close;
  SQLStoredProc1.StoredProcName := 'Test2';
  SQLStoredProc1.Params.ParamByName('@para1').Value := Edit2.Text; //整数
  SQLStoredProc1.Params.ParamByName('@otp').Value := null;
  SQLStoredProc1.ExecProc;
  Edit1.Text := SQLStoredProc1.Params.ParamByName('@otp').Value;

[解决办法]
肯定是可以的  我这不就用的好好的
Result := Parameters.ParamByName('@RETURN_VALUE').Value;//@RETURN_VALUE参数的Direction为pdReturnValue
    for i := Low(AParamName) to High(AParamName) do
      if Parameters.ParamByName(AParamName[i]).Direction = pdInputOutput then
        AParamValue[i] := Parameters.ParamByName(AParamName[i]).Value;
我这代码你看下 应该就懂了  delphi还可以获取到proc自身返回值(成功0;不成功非0)
然后你要制定参数返回的  需要有个direction 为 pdinputout的。
[解决办法]
怎么用这个控件? ado不行吗? 这个控件没用过啊。

热点排行