Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Uso de Procedimientos Almacenados PDF
Uso de Procedimientos Almacenados PDF
Uso de Procedimientos Almacenados PDF
NDICE
Descripcin
Descripcin
*****************************
Introduccin
Objetivos
Qu es un procedimiento almacenado?
*****************************
Introduccin
Una alternativa al acceso directo a bases de datos desde nuestra aplicacin Web
es invocar un procedimiento almacenado que acceder a la base de datos por
nosotros. El uso de procedimientos almacenados tiene varias ventajas respecto
al acceso directo a bases de datos, incluyendo la eficacia, seguridad y la
proteccin de la base de datos.
En esta leccin, aprenderemos qu es un procedimiento almacenado y los
motivos para invocar procedimientos almacenados cuando se accede a una base
de datos.
Objetivos de la leccin
Qu es un procedimiento almacenado?
Devolver registros
Devolver un valor
Realizar accin
Formulario
Web Form
Procedimiento
Procedimiento
almacenado
almacenado
Cliente
Cliente
Base datos
Servidor
ServidorWeb
Web
SQL
SQLServer
Server
*****************************
Introduccin
Acceso programtico a
una base de datos
Programacin modular
Ejecucin ms rpida
Proporciona flexibilidad
*****************************
Introduccin
Programacin modular
Incremento de la
seguridad de la base de
datos
Ejecucin ms rpida
En ocasiones, una operacin que requiere cientos de lneas de cdigo TransactSQL puede realizarse mediante una nica instruccin que invoque un
procedimiento almacenado. Enviar una llamada a travs de la red, en lugar de
cientos de lneas de cdigo, reduce el trfico de red.
Proporciona flexibilidad
Los estudiantes:
z
Tiempo: 5 Minutos
*****************************
Devolver registros
Devolver valor
Realizar accin
Debemos determinar los 10 mejores best sellers de la compaa.
____________________________________________________________
____________________________________________________________
Debemos determinar el beneficio neto de un determinado trimestre.
____________________________________________________________
____________________________________________________________
Debemos cambiar todos los prefijos telefnicos 425 de Estados Unidos por
el prefijo 415.
____________________________________________________________
____________________________________________________________
Utilizar parmetros
*****************************
Introduccin
Objetivos de la leccin
10
Dim
Dim daCategory
daCategory As
As New
New SqlDataAdapter()
SqlDataAdapter()
daCategory.SelectCommand
daCategory.SelectCommand == New
New SqlCommand()
SqlCommand()
daCategory.SelectCommand.Connection
daCategory.SelectCommand.Connection == conn
conn
daCategory.SelectCommand.CommandText
daCategory.SelectCommand.CommandText == "ProductCategoryList"
"ProductCategoryList"
daCategory.SelectCommand.CommandType
daCategory.SelectCommand.CommandType == CommandType.StoredProcedure
CommandType.StoredProcedure
SqlDataAdapter
SqlDataAdapter daCategory
daCategory == new
new SqlDataAdapter();
SqlDataAdapter();
daCategory.SelectCommand
daCategory.SelectCommand == new
new SqlCommand();
SqlCommand();
daCategory.SelectCommand.Connection
daCategory.SelectCommand.Connection == conn;
conn;
daCategory.SelectCommand.CommandText
daCategory.SelectCommand.CommandText == "ProductCategoryList";
"ProductCategoryList";
daCategory.SelectCommand.CommandType
daCategory.SelectCommand.CommandType == CommandType.StoredProcedure;
CommandType.StoredProcedure;
*****************************
Introduccin
Identificar el
procedimiento
almacenado
Establecer la propiedad
SelectCommand
C#
C#
11
12
Ejecutar el
procedimiento
almacenado
daCategory.Fill(ds, "Categories")
C#
daCategory.Fill(ds, "Categories");
13
*****************************
Introduccin
Ejecutar la demostracin
1. Abrir la pgina SPGetRecords.aspx del proyecto Demo09VB o Demo09CS
que se pueden encontrar dentro del fichero demos9.zip.
2. Generar y examinar la pgina.
El DataGrid est vinculado al procedimiento almacenado Ten Most
Expensive Products de la base de datos Northwind Traders.
3. En Visual Studio .NET, visualizar la pgina de cdigo subyacente de la
pgina SPGetRecords.aspx.
4. En el procedimiento de evento Page_Load, mostrar el cdigo que realiza lo
siguiente:
Crea el objeto SqlConnection.
Crea los objetos SqlDataAdapter y SqlCommand.
Establece las propiedades del objeto SqlCommand para invocar el
procedimiento almacenado.
Crea un nuevo DataSet y lo rellena desde el DataAdapter.
14
Los estudiantes:
z
Tiempo: 15 minutos
*****************************
Introduccin
Ejecutar la prctica
1. Crear un nuevo proyecto de aplicacin Web y establecer su ubicacin en
Visual Basic .NET
http://localhost/Pract09VB
C#
http://localhost/Pract09CS
2. Abrir la pgina WebForm1.aspx.
3. Abrir el Explorador de servidores y expandir las siguientes carpetas:
nombre_mquina, Servidores SQL Server, nombre_mquina, Northwind y
Procedimientos almacenados.
4. Hacer clic en el procedimiento almacenado Ten Most Expensive Products
y arrastrarlo a la pgina WebForm1.aspx.
Visual Studio .NET crea automticamente un objeto SqlConnection
denominado sqlConnection1 y un objeto SqlCommand denominado
sqlCommand1.
5. Utilizando el Cuadro de herramientas, ubicar un control DataGrid en la
pgina WebForm1.aspx.
15
Dim dr As SqlClient.SqlDataReader
SqlConnection1.Open()
dr = SqlCommand1.ExecuteReader()
DataGrid1.DataSource = dr
DataGrid1.DataBind()
dr.Close()
SqlConnection1.Close()
C#
SqlDataReader dr;
sqlConnection1.Open();
dr = sqlCommand1.ExecuteReader();
DataGrid1.DataSource = dr;
DataGrid1.DataBind();
dr.Close();
sqlConnection1.Close();
C#
16
Utilizar parmetros
Input
Output
InputOutput
ReturnValue
*****************************
Introduccin
Uso
Input
Output
InputOutput
ReturnValue
17
Cdigos de ejemplo
*****************************
Introduccin
Crear un parmetro
18
C#
C#
Ejecutar un
procedimiento
almacenado
Una vez creado el objeto Command, utilizamos el mtodo Fill para ejecutar el
procedimiento almacenado y recuperar los registros:
ds = New DataSet()
daSales.Fill(ds, "Products")
C#
ds = new DataSet();
daSales.Fill(ds, "Products");
19
ds
ds == new
new DataSet();
DataSet();
da.Fill(ds);
da.Fill(ds);
iTotal
Leer losda.parameters("@ItemCount").Value
parmetros de salida
iTotal == da.parameters("@ItemCount").Value
iTotal
iTotal == da.parameters("@ItemCount").Value;
da.parameters("@ItemCount").Value;
*****************************
Introduccin
Ejemplo de uso de
parmetros de salida
20
C#
Ejecutar el procedimiento
almacenado
conn.Open()
myCmd.ExecuteNonQuery()
conn.Close()
C#
conn.Open();
myCmd.ExecuteNonQuery();
conn.Close();
Leer parmetros de
salida
curSales = myCmd.Parameters("@ItemCount").Value
C#
curSales = myCmd.Parameters["@ItemCount"].Value;
21
*****************************
Introduccin