Usar un modo mas estándar para listar procedimientos
This commit is contained in:
@@ -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");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user