写了个存储过程,参数很多,但都有默认值,可以不传值,必须传值的也就两三个,所以我想知道可不可以在delphi调用的时候可以不用每个参数都赋值?比如这个存储过程:
procedure getAnalysis(p_rc OUT myData,nrunstate in number:=2,a in number:=-1,
b in varchar2 := '-1',
c in varchar2:='-1',d in varchar2:='-1',
e in varchar2:='-1',f in number:=0,g in number:=100,
g in varchar2:='-1',h in number:=-1,i in number:=-1,
j in number:=-1,k in varchar2:='-1',l in number:=-1,
m in number:=-1,n in number:=-1,nMinute in number:=10,nOddsNum in number:=0.01) ;
我在调用的时候这样写:
Adoquery1.sql.add('{call pack_OddsAnalysis.getAnalysis(?,?)}');
Adoquery1.Parameters.createparameter('nMinute',ftinteger,pdInput,20, iMinute) ;
Adoquery1.Parameters.createparameter('nOddsNum',ftFloat,pdInput,20, iOddsNum) ;
其它参数不赋值,返回结果是空。但实际上按这个条件在PL/SQL developer里测试存储过程是有值的。
难道在delphi中调用一定要把所有参数都赋值才行吗?
procedure getAnalysis(p_rc OUT myData,nrunstate in number:=2,a in number:=-1,
b in varchar2 := '-1',
c in varchar2:='-1',d in varchar2:='-1',
e in varchar2:='-1',f in number:=0,g in number:=100,
g in varchar2:='-1',h in number:=-1,i in number:=-1,
j in number:=-1,k in varchar2:='-1',l in number:=-1,
m in number:=-1,n in number:=-1,nMinute in number:=10,nOddsNum in number:=0.01) ;
我在调用的时候这样写:
Adoquery1.sql.add('{call pack_OddsAnalysis.getAnalysis(?,?)}');
Adoquery1.Parameters.createparameter('nMinute',ftinteger,pdInput,20, iMinute) ;
Adoquery1.Parameters.createparameter('nOddsNum',ftFloat,pdInput,20, iOddsNum) ;
其它参数不赋值,返回结果是空。但实际上按这个条件在PL/SQL developer里测试存储过程是有值的。
难道在delphi中调用一定要把所有参数都赋值才行吗?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货