Usar un modo mas estándar para listar procedimientos

This commit is contained in:
2013-11-23 15:37:40 +01:00
parent ce7148acdc
commit c15a11a1db
2 changed files with 24 additions and 44 deletions

View File

@@ -36,9 +36,7 @@ namespace ServerExplorer.UI
// Obtener un datatable con todos los procedimientos de la base de datos.
da = new SqlDataAdapter(
"SELECT id,name,crdate,type FROM sysobjects " +
"WHERE (UPPER(type) = 'P' OR UPPER(type) = 'TF' OR UPPER(type) = 'TR' OR UPPER(type) = 'V') AND category = 0 " +
"ORDER BY name ",
"SELECT ROUTINE_NAME Name, ROUTINE_SCHEMA [Schema], CREATED CreateDate, ROUTINE_TYPE [Type] FROM INFORMATION_SCHEMA.ROUTINES",
cnx);
dt = new DataTable();
cnx.Open();
@@ -49,33 +47,11 @@ namespace ServerExplorer.UI
lsvProcs.Items.Clear();
foreach (DataRow dr in dt.Rows)
{
ListViewItem item = lsvProcs.Items.Add((String)dr["name"]);
item.SubItems.Add(((DateTime)dr["crdate"]).ToShortDateString());
string type = ((string)dr["type"]).ToUpper().Trim();
if (type == "P")
{
item.SubItems.Add("Proc");
}
else if (type == "TF")
{
item.SubItems.Add("Func");
}
else if (type == "TR")
{
item.SubItems.Add("Trigg");
}
else if (type == "V")
{
item.SubItems.Add("View");
}
else
{
item.SubItems.Add("Unk: \"" + (string)dr["type"] + "\"");
}
item.Tag = dr["id"];
ListViewItem item = lsvProcs.Items.Add((String)dr["Name"]);
item.SubItems.Add((string)dr["Schema"]);
item.SubItems.Add(((DateTime)dr["CreateDate"]).ToShortDateString());
item.SubItems.Add((string)dr["Type"]);
}
}
private void lsvProcs_SelectedIndexChanged(object sender, EventArgs e)
@@ -84,13 +60,12 @@ namespace ServerExplorer.UI
{
DataTable dt;
SqlDataAdapter da;
int id = (int)lsvProcs.SelectedItems[0].Tag;
// Obtener un datatable con el contenido del procedimiento.
da = new SqlDataAdapter(
"SELECT text FROM syscomments WHERE id = @id ORDER BY colid",
cnx);
da.SelectCommand.Parameters.AddWithValue("@id", id);
string Schema, Name;
Name = lsvProcs.SelectedItems[0].SubItems[0].Text;
Schema = lsvProcs.SelectedItems[0].SubItems[1].Text;
da = new SqlDataAdapter("SELECT ROUTINE_DEFINITION from INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_NAME=@Name AND ROUTINE_SCHEMA=@Schema", cnx);
da.SelectCommand.Parameters.AddWithValue("@Name", Name);
da.SelectCommand.Parameters.AddWithValue("@Schema", Schema);
dt = new DataTable();
cnx.Open();
da.Fill(dt);
@@ -102,7 +77,6 @@ namespace ServerExplorer.UI
{
txtProc.Text += ((string)dr[0]).Replace("\r", "").Replace("\n", "\r\n");
}
}
}
}