private bool UpdateProcedureItem(ListViewItem item, PLSQLProcedure procedure, bool reloadExisting) { if (reloadExisting || existingPackage == null) { GetExistingPackage(lastReadPLSQLSpec.PackageName); } StoredProcedure storedProc = StoredProcedureHelper.CreateStoredProcedure(procedure); // Check if procedure is imported already bool isImported = (existingPackage != null && storedProc != null && existingPackage.Procedures.Where(p => p.Equals(storedProc)).Count() == 1); bool packageHasProcedureNameImported = (existingPackage != null && storedProc != null && existingPackage.Procedures.Where(p => p.ProcedureName == storedProc.ProcedureName).Count() > 0); ImportStoredProcedureWrapperClass wrapper = new ImportStoredProcedureWrapperClass(); wrapper.StoredProcedure = procedure; wrapper.IsImported = isImported; item.Text = procedure.Name; item.SubItems[1].Text = procedure.Status.ToString(); if (isImported) { item.SubItems[2].Text = "Imported"; } else { if (packageHasProcedureNameImported) { item.SubItems[2].Text = "Overloaded/Updated"; } else { item.SubItems[2].Text = "Not Imported"; } } item.Tag = wrapper; if (procedure.Status != ProcedureStatus.Valid) { item.ForeColor = Color.OrangeRed; } else if (isImported) { item.ForeColor = Color.Green; } return(true); }
private StoredProcedure GetStoredProcedureFromPLSQLProcedure(PLSQLProcedure procedure, string packageName) { StoredProcedure storedProc = null; if (procedure != null) { // Check if there are any ref cursors in the procedure parameters if (procedure.IsContainingRefCursor && !procedure.IsFunction) { // Create ref cursor stored procedure RefCurStoredProcedure proc = RefCurStoredProcedure.Create(procedure.Name, packageName, mySchema.ConnectionString); // Check if procedure is valid if (proc.Status == RefCurStoredProcedureStatus.Valid) { // Convert the RefCurStoredProcedure to a StoredProcedure storedProc = StoredProcedureHelper.CreateStoredProcedure(procedure, proc); } else { string errorText = string.Format("Error when trying to import procedure {0} that has a Ref Cursor parameter!" + Environment.NewLine + Environment.NewLine, proc.Name) + string.Format("Status: {0}", proc.Status.ToString()) + Environment.NewLine + Environment.NewLine + proc.ErrorText; MessageBox.Show(errorText, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { // Convert the PLSQLProcedure to a StoredProcedure storedProc = StoredProcedureHelper.CreateStoredProcedure(procedure); } } return(storedProc); }