Tarea Vii. Programacion III

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

UNIVERSIDAD ABIERTA PARA ADULTOS

(UAPA)

Nombre:
Heriberto Armando Feliz

Matricula:
1000-35437

Materia:
Programación III

Profesor:
Roberto Burgos
1. Investigar en la web acerca de los procedimientos almacenados, su
importancia, características, ventajas y desventajas.

Un procedimiento almacenado (stored procedure en inglés) es


un programa (o procedimiento) almacenado físicamente en una base de datos.
Su implementación varía de un gestor de bases de datos a otro. La ventaja de
un procedimiento almacenado es que al ser ejecutado, en respuesta a una
petición de usuario, es ejecutado directamente en el motor de bases de datos,
el cual usualmente corre en un servidor separado. Como tal, posee acceso
directo a los datos que necesita manipular y sólo necesita enviar sus resultados
de regreso al usuario, deshaciéndose de la sobrecarga resultante de comunicar
grandes cantidades de datos salientes y entrantes.

Los procedimientos pueden ser ventajosos: cuando una base de datos es


manipulada desde muchos programas externos. Al incluir la lógica de la
aplicación en la base de datos utilizando procedimientos almacenados, la
necesidad de embeber la misma lógica en todos los programas que acceden a
los datos es reducida. Esto puede simplificar la creación y, particularmente, el
mantenimiento de los programas involucrados.

Podemos ver un claro ejemplo de estos procedimientos cuando requerimos


realizar una misma operación en un servidor dentro de algunas o todas las
bases de datos y a la vez dentro de todas o algunas de las tablas de las bases
de datos del mismo. Para ello podemos utilizar a los Procedimientos
almacenados auto creables que es una forma de generar ciclos redundantes a
través de los procedimientos almacenados.

Importancia

Los procedimientos almacenados son muy importantes ya que nos permiten


almacenar consultas de cualquier tipo y solo tenemos que invocarlo por su
nombre y si tiene parámetros debemos pasárselos, los procedimientos
almacenados deben de llevar un nombre y los parámetros son opcionales, para
mí son de gran importancia porque no tenemos propiedades de la tabla en la
aplicación y todo esta encapsulado. También sirve para la integridad de los
datos.

Estas son las características principales de los procedimientos


almacenados

 Pueden recibir y devolver parámetros.


 Pueden manejar tablas, ejecutando operaciones e iteraciones de
lectura/escritura.
 Pueden devolver una tabla como resultado.
 Se almacenan en la base de datos en la cual se crean.
 No dependen de ninguna tabla en particular.
 Pueden aceptar recursividad.

Ventajas

La ventaja de un procedimiento almacenado, en respuesta a una petición de


usuario, está directamente bajo el control del motor del gestor de bases de
datos, que corre generalmente en un servidor distinto del servidor web,
aumentando con ello la rapidez de procesamiento de las peticiones del usuario.
El servidor de la base de datos tiene acceso directo a los datos necesarios para
manipular y sólo necesita enviar el resultado final al usuario. Los
procedimientos almacenados pueden permitir que la lógica del negocio se
encuentre como un API en la base de datos, que pueden simplificar la gestión
de datos y reducir la necesidad de codificar la lógica en el resto de los
programas cliente. Esto puede reducir la probabilidad de que los datos se
corrompan por el uso de programas clientes defectuosos o erróneos. De este
modo, el motor de base de datos puede asegurar la integridad de los datos y su
consistencia con la ayuda de procedimientos almacenados. Algunos afirman
que las bases de datos deben ser utilizadas para el almacenamiento de datos
solamente, y que la lógica de negocio sólo debería aplicarse en la capa de
negocio de código, a través de aplicaciones cliente que deban acceder a los
datos. Sin embargo, el uso de procedimientos almacenados no se opone a la
utilización de una capa de negocio. Véase programación en tres capas.
Desventajas

puede que no sea el mejor lugar para poner una lógica compleja. Sin embargo,
siguiendo la idea de que la lógica compleja pertenece al código de la aplicación
y no a los procedimientos almacenados, el procedimiento almacenado se
convierte simplemente en operaciones CRUD (cada tabla tiene un " Crear " ;, "
Lectura " ;, Update " y " Delete " procedure) . En ese caso, los procedimientos
almacenados no agregan ningún valor a la aplicación, solo complejizan el
mantenimiento y se convierten en residuos.
// MEDIANTE EL BOTON LLAMAR STORE PROCEDURE PARA AGREGAR REGISTRO.
private void Btnagregar_Click(object sender, EventArgs e)
{

SqlConnection Con = new SqlConnection("Data Source = MR-ERICK\\SQL;


Initial Catalog=HOUSE-RENTAL;Integrated Security=True");
Con.Open();
SqlCommand cmd = new SqlCommand("sp_guardar", Con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@ID",
ParameterDirection.Output));
cmd.Parameters.Add(new SqlParameter("@Habitaciones", Txthab.Text));
cmd.Parameters.Add(new SqlParameter("@Sala", TxtSal.Text));
cmd.Parameters.Add(new SqlParameter("@Comedor", TxtCom.Text));
cmd.Parameters.Add(new SqlParameter("@Bano", TxtBan.Text));
cmd.Parameters.Add(new SqlParameter("@Marquesina", TxtMar.Text));
cmd.Parameters.Add(new SqlParameter("@Galeria", TxtGal.Text));
cmd.Parameters.Add(new SqlParameter("@Direccion", TxtDir.Text));
cmd.Parameters.Add(new SqlParameter("@Sector", TxtSec.Text));

int resultado = cmd.ExecuteNonQuery();

if (resultado > 0)
{

MessageBox.Show("Registro Guardado");

this.inmuebleTableAdapter.Fill(this._HOUSE_RENTALDataSet.Inmueble);
}
else
{
MessageBox.Show("No se puedo Guardar");
}

Con.Close();
}
public void limpiarCampos()
{
TxtID.Clear();
TxtBan.Clear();
TxtCom.Clear();
TxtDir.Clear();

}
//LLAMAR STORE PROCEDURE PARA MODIFICAR REGISTROS.
private void BtnEliminar_Click(object sender, EventArgs e)
{
SqlConnection Con = new SqlConnection("Data Source = MR-ERICK\\SQL;
Initial Catalog=HOUSE-RENTAL;Integrated Security=True");
Con.Open();
SqlCommand cmd = new SqlCommand("sp_update", Con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@ID",
ParameterDirection.Output));
cmd.Parameters.Add(new SqlParameter("@Habitaciones", Txthab.Text));
cmd.Parameters.Add(new SqlParameter("@Sala", TxtSal.Text));
cmd.Parameters.Add(new SqlParameter("@Comedor", TxtCom.Text));
cmd.Parameters.Add(new SqlParameter("@Bano", TxtBan.Text));
cmd.Parameters.Add(new SqlParameter("@Marquesina", TxtMar.Text));
cmd.Parameters.Add(new SqlParameter("@Galeria", TxtGal.Text));
cmd.Parameters.Add(new SqlParameter("@Direccion", TxtDir.Text));
cmd.Parameters.Add(new SqlParameter("@Sector", TxtSec.Text));

int resultado = cmd.ExecuteNonQuery();

if (resultado > 0)
{

MessageBox.Show(".");

this.inmuebleTableAdapter.Fill(this._HOUSE_RENTALDataSet.Inmueble);
}
else
{
MessageBox.Show("Registro Modificado ");
}

}
//LLAMAR STORE PROCEDURE PARA ELIMINAR REGISTRO
private void BtnModificar_Click(object sender, EventArgs e)
{
SqlConnection Con = new SqlConnection("Data Source = MR-ERICK\\SQL;
Initial Catalog=HOUSE-RENTAL;Integrated Security=True");
Con.Open();
SqlCommand cmd = new SqlCommand("Eliminardatos", Con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@ID",
ParameterDirection.Output));
int resultado = cmd.ExecuteNonQuery();

if (resultado > 0)
{

MessageBox.Show(".");

this.inmuebleTableAdapter.Fill(this._HOUSE_RENTALDataSet.Inmueble);
}
else
{
MessageBox.Show("Registro Eliminado ");
}
}
}
}

También podría gustarte