I created this function to handle the calling of procedures in packages and it works just fine for procedures, but it doesn't seem to work for calling functions (IsGenerator) in a package so I want to create another function called ExecFunction. I'm not quite sure what I have to change. The command type? The SQL passed in?
Private Const _PackageNameAdd As String = "GENERATORS.ADD_REC" Calling function that developers code Private Sub Add(ByVal R As GeneratorsDataset.C_GENERATORSRow) Dim Ps As New Utilities.DBManager.Parameters Ps.Add("n_cca_num", R.CCA_NUM, Int32, Input) Ps.Add("v_ccs", R.CCS, Varchar2, Input) Ps.Add("v_substation_name", R.SUBSTATION_NAME, Varchar2, Input) Ps.Add("n_eqp_type_id", R.EQP_TYPE_ID, Int32, Input) Ps.Add("v_short_name", R.EQP_SHORT_NAME, Varchar2, Input) Ps.Add("v_long_name", R.EQP_LONG_NAME, Varchar2, Input) Ps.Add("n_capacity", R.CAPACITY, Double, Input) Ps.Add("v_gen_type", R.GEN_TYPE, Varchar2, Input) Ps.Add("v_plant_name", R.PLANT_NAME, Varchar2, Input) Ps.Add("v_fuel_type", R.FUEL_TYPE, Char, Input) Dim OutputPs As New Utilities.DBManager.Parameters OutputPs = _DB.ExecProcedure(_PackageNameAdd, Ps) End Sub Utility function Public Function ExecProcedure(ByVal SQL As String, ByVal Parms As DBManager.Parameters) As Parameters ' Author: Franklin Gray ' Created Date: 8/23/2005 ' Purpose: Call an Oracle package and return output parms ' ' Process: Create parm collection ' Call package ' Load output parms into collection ' ' Input: package name and collection of parameters ' Output: collection ' ' Changes: (who, what, where, and when) ' If _Conn.State = ConnectionState.Closed Or _Conn.State = ConnectionState.Broken Then _Conn.Open() Dim cmd As New Oracle.DataAccess.Client.OracleCommand(SQL, _Conn) cmd.CommandType = CommandType.StoredProcedure Dim P As DBManager.Parameters.Parameter 'add parms to ADO parm collection If Not (Parms Is Nothing) Then For Each P In Parms Debug.Write(P.Name & " = " & P.Value & ", ") cmd.Parameters.Add(P.Name, P.type, P.Value, P.Direction) Next End If 'run package cmd.ExecuteNonQuery() Dim OutputDataTables As New Parameters 'loop through all parms and find all output and add to collection If Not (Parms Is Nothing) Then For Each P In Parms If P.Direction = ParameterDirection.Output Then P.Value = cmd.Parameters(P.Name) OutputDataTables.Add(P) End If Next End If _Conn.Close() 'return collection of output Return OutputDataTables End Function =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com