/// <summary> /// Call Stored Procedure using Misys Framework /// </summary> /// <param name="Da">Build in Data Access object</param> /// <param name="StoredProcedureName">Stored Procedure Name</param> /// <param name="Parameters">Storec Procuedure Parameters array</param> /// <returns> /// Success: Table 0 populated with return data /// Failure: Null /// </returns> public static DataSet CallStoredProcedure(DataAccessProxy Da,string StoredProcedureName, string[] Parameters) { TraceOutput.EnterModule(string.Format("CallStoredProcedure: {0}", StoredProcedureName)); try { //Get data access proxy if (Da == null) { Da = DataAccessProxy.GetDataProxy(); } // Make a call to database to get data for (int i = 0; i < 300; i++) Da.DBFields[i] = string.Empty; //Parameters.CopyTo(Da.DBFields, Parameters.Length); for (int i = 1; i <= Parameters.Length; i++) Da.DBFields[i] = Parameters[i - 1]; Da.ColumnCount = Parameters.Length; //Call database TraceOutput.Information(string.Format("Calling Stored Procedure: {0}", StoredProcedureName)); Da.DBCALL(Misys.OpicsPlus.Framework.DataAccessLayer.CommandType.STOREDPROCEDURE.ToString(), string.Empty, StoredProcedureName); //Scan result TraceOutput.Information(string.Format("Stored Procedure returned: ", Da.Result.ToString())); if (Da.Result != ReturnType.dbFAIL) { //Data has been returned successfully, exit with dataset SessionParameters.Result.ErrorNumber = 0; TraceOutput.ExitModule("CallStoredProcedure"); return Da.Output.Data; } //Trace error message TraceOutput.Error(string.Format("CallStoredProcedure failed: {0} {1}", Da.Error.ErrorCode, Da.Error.ErrorMessage)); //Error happened, return error message and exit SessionParameters.Result.ErrorNumber = 21; } catch (Exception ex) { TraceOutput.Error(ex.Message); SessionParameters.Result.SetError(17201, new object[] { ex.Message }); } TraceOutput.ExitModule("CallStoredProcedure"); return null; }