2,497
社区成员
发帖
与我相关
我的任务
分享
' select a.argument_name as name, '
+' case '
+' when data_type = ''VARCHAR2'' then ''ftString'''
+' when data_type = ''CHAR'' then ''ftString'''
+' when data_type = ''NUMBER'' then ''ftFloat'''
+' when data_type = ''INTEGER'' then ''ftInteger'''
+' else ''ftString'' end as data_type, '
+' case '
+ ' when in_out = ''IN'' then ''pdInput'''
+ ' else ''pdOutput'' end as inout,'
+ ' data_length '
+' from user_arguments a '
+' where data_type <> ''REF CURSOR'''
+' and position > 0 '
+' and object_name = upper(''' + Trim(MenuInfo.SpName) + ''')'
+' order by position ';
---------调用
AdoQry.SQL.Add('{?= call ' + Trim(MenuInfo.spName) + '(' + sParamdef + ')}');
AdoQry.Parameters.Clear;
AdoQry.Parameters.CreateParameter('p_RETURN',ftinteger, pdReturnvalue,4,0);
for iCir:= 0 to length(AParamInfo)-1 do
begin
AdoQry.Parameters.CreateParameter(AParamInfo[iCir].Param_Name,AParamInfo[iCir].Param_type,
AParamInfo[iCir].Param_direction,AParamInfo[iCir].Param_length,null);
//if AparamInfo[iCir].Param_type = ftString then
//AdoQry.Parameters.ParamByName(AparamInfo[iCir].Param_Name).value := ' '
//else
AdoQry.Parameters.ParamByName(AparamInfo[iCir].Param_Name).value :=null;
end;