sql server的存储过程没有输入参数,返回三个real类型数据
CREATE PROCEDURE dbo.class_static
@pm10 real output,
@so2 real output,
@no2 real output
AS
......
在delphi7中,用TADOStoredProc,
var
Pm10,So2,No2:single try
ADOConnPredict.Open ;
with ADOStoredProcK_YULIANG do begin
Parameters.Clear;
ProcedureName := 'class_static';
Parameters.CreateParameter('myPm10',ftFloat,pdOutput,4,1);
Parameters.CreateParameter('mySo2',ftFloat,pdOutput,4,1);
Parameters.CreateParameter('myNo2',ftFloat,pdOutput,4,1);
Prepared := true;
ExecProc ;
Pm10:=ADOStoredProcK_YULIANG.Parameters.ParamByName('myPm10').Value;
So2:=ADOStoredProcK_YULIANG.Parameters.ParamByName('mySo2').Value;
No2:=ADOStoredProcK_YULIANG.Parameters.ParamByName('myNo2').Value;
end;
finally
ADOStoredProcK_YULIANG.Close;
ADOConnPredict.Close;
存储过程的运行是正确的返回real值的,在sql server中测试通过。但是在上面语句中运行,没有报错,但是Pm10,So2和No2的值都是0。奇怪了,该怎么写程序呢?
CREATE PROCEDURE dbo.class_static
@pm10 real output,
@so2 real output,
@no2 real output
AS
......
在delphi7中,用TADOStoredProc,
var
Pm10,So2,No2:single try
ADOConnPredict.Open ;
with ADOStoredProcK_YULIANG do begin
Parameters.Clear;
ProcedureName := 'class_static';
Parameters.CreateParameter('myPm10',ftFloat,pdOutput,4,1);
Parameters.CreateParameter('mySo2',ftFloat,pdOutput,4,1);
Parameters.CreateParameter('myNo2',ftFloat,pdOutput,4,1);
Prepared := true;
ExecProc ;
Pm10:=ADOStoredProcK_YULIANG.Parameters.ParamByName('myPm10').Value;
So2:=ADOStoredProcK_YULIANG.Parameters.ParamByName('mySo2').Value;
No2:=ADOStoredProcK_YULIANG.Parameters.ParamByName('myNo2').Value;
end;
finally
ADOStoredProcK_YULIANG.Close;
ADOConnPredict.Close;
存储过程的运行是正确的返回real值的,在sql server中测试通过。但是在上面语句中运行,没有报错,但是Pm10,So2和No2的值都是0。奇怪了,该怎么写程序呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货