119 lines
3.4 KiB
C#
119 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.Data.Sql;
|
|
using System.Data.SqlClient;
|
|
|
|
namespace ServerExplorer
|
|
{
|
|
public partial class frmProcedimientos : Form
|
|
{
|
|
private string cnxString;
|
|
private SqlConnection cnx;
|
|
|
|
public frmProcedimientos(string cnxString)
|
|
{
|
|
InitializeComponent();
|
|
|
|
this.cnxString = cnxString;
|
|
}
|
|
|
|
|
|
|
|
private void frmProcedimientos_Load(object sender, EventArgs e)
|
|
{
|
|
DataTable dt;
|
|
SqlDataAdapter da;
|
|
|
|
// Establecer conexion
|
|
cnx = new SqlConnection(cnxString);
|
|
|
|
// 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 ",
|
|
cnx);
|
|
dt = new DataTable();
|
|
cnx.Open();
|
|
da.Fill(dt);
|
|
cnx.Close();
|
|
|
|
// Mostrar todos los procedimientos
|
|
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"];
|
|
}
|
|
|
|
|
|
}
|
|
|
|
private void lsvProcs_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (lsvProcs.SelectedItems.Count>0 )
|
|
{
|
|
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);
|
|
dt = new DataTable();
|
|
cnx.Open();
|
|
da.Fill(dt);
|
|
cnx.Close();
|
|
|
|
// Mostrar el contenido del procedimiento
|
|
txtProc.Text = String.Empty;
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
txtProc.Text += ((string)dr[0]).Replace("\r","").Replace("\n","\r\n");
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private void splitContainer1_Panel1_Paint(object sender, PaintEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e)
|
|
{
|
|
|
|
}
|
|
}
|
|
}
|