Ejemplo n.º 1
0
        /// <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;
        }