CURSORES
CURSORES
CURSORES
Un cursor es una variable que nos permite recorres con un conjunto de resultados obtenidos
a travs de una sentencia SELECT fila por fila.
El uso de los cursores es una tcnica que permite tratar fila por fila el resultado de una
consulta, contrariamente al SELECT SQL que trata a un conjunto de fila. Los cursores
pueden ser implementador por instrucciones TRANSACT-SQL (cursores ANSI-SQL) o por
la API OLE-DB.
Se utilizarn los cursores ANSI cuando sea necesario tratar las filas de manera individual
en un conjunto o cuando SQL no pueda actuar nicamente sobre las filas afectadas. Los
cursores API sern utilizados por las aplicaciones cliente para tratar volmenes importantes
o para gestionar varios conjuntos de resultados.
Un cursor es, bsicamente, una variable que contiene la lista de filas resultado de una
consulta.
Un cursor es un objeto de la Base de Datos usado por las aplicaciones para manipular los
datos fila a fila, en lugar de hacerlo en bloques de filas como lo hacen los comandos SQL
normales.
Es el mecanismo utilizado en SQL para superar el desajuste de impedancia entre el manejo
de datos navegacional (ir a registro n, saltar al siguiente,) y el manejo de datos relacional
(operaciones sobre conjuntos de filas que dan nuevos conjuntos de filas).
Resumen
SQL es un lenguaje de consulta para los sistemas de bases de datos relacinales, pero
que no posee la potencia de los lenguajes de programacin. No permite el uso de variables,
estructuras de control de flujo, bucles y dems elementos caractersticos de la
programacin.
TRANSACT-SQL ampla el SQL estndar con la implementacin de estructuras de
programacin. Estas implementaciones le resultarn familiares a los desarrolladores con
experiencia en C++, Java, Visual Basic .NET, C# y lenguajes similares.
Una variable es una entidad a la que se asigna un valor. Este valor puede cambiar durante
el proceso donde se utiliza la variable. SQL Server tiene dos tipos de variables: locales y
globales. Las variables locales estn definidas por el usuario, mientras que las variables
globales las suministra el sistema y estn predefinidas.
La estructura condicional IF se utiliza para definir una condicin que determina si se
ejecutar la instruccin siguiente. La instruccin SQL se ejecuta si la condicin se cumple,
es decir, si devuelve TRUE (verdadero). La palabra clave ELSE introduce una instruccin
SQL alternativa que se ejecuta cuando la condicin IF devuelva FALSE.
La estructura CASE evala una lista de condiciones y devuelve una de las varias
expresiones de resultado posibles. La expresin CASE tiene dos formatos:
La expresin CASE sencilla compara una expresin con un conjunto de expresiones
sencillas para determinar el resultado.
La expresin CASE buscada evala un conjunto de expresiones booleanas para
determinar el resultado.
La estructura WHILE ejecuta en forma repetitiva un conjunto o bloque de instrucciones
SQL siempre que la condicin especificada sea verdadera. Se puede controlar la ejecucin
de instrucciones en el bucle WHILE con las palabras clave
BREAK y CONTINUE.
BREAK y CONTINUE controlan el funcionamiento de las instrucciones dentro de un bucle
WHILE. BREAK permite salir del bucle WHILE. CONTINUE hace que el bucle WHILE se
inicie de nuevo.
SQL Server proporciona el control de errores a travs de las instrucciones TRY y CATCH.
Estas nuevas instrucciones suponen un gran paso adelante en el control de errores en SQL
Server. La variable @@ERROR devuelve el nmero de error de la ltima instruccin
TRANSACT-SQL ejecutada; si la variable devuelve 0, la TRANSACT-SQL anterior no
encontr errores. Si el error se encuentra en la vista de catlogo sys.sysmessages,
entonces @@ERROR contendr el valor de la columna sys.sysmessages.error para
dicho error. Puede ver el texto asociado con el nmero de error @@ERROR en
sys.sysmessages.description.
Un cursor es una variable que nos permite recorres con un conjunto de resultados
obtenidos a travs de una sentencia SELECT fila por fila.
Se utilizarn los cursores ANSI cuando sea necesario tratar las filas de manera individual
en un conjunto o cuando SQL no pueda actuar nicamente sobre las
filas afectadas. Los cursores API sern utilizados por las aplicaciones cliente para
tratar volmenes importantes o para gestionar varios conjuntos de resultados
Cuando trabajemos con cursores, debemos seguir los siguientes pasos:
Declarar el cursor, utilizando DECLARE
Abrir el cursor, utilizando OPEN
Leer los datos del cursor, utilizando FETCH ... INTO
Cerrar el cursor, utilizando CLOSE
Liberar el cursor, utilizando DEALLOCATE
Para actualizar los datos de un cursor debemos especificar la clusula FOR UPDATE
despus de la sentencia SELECT en la declaracin del cursor, y WHERE CURRENT
OF <nombre_cursor> en la sentencia UPDATE.
Si desea saber ms acerca de estos temas, puede consultar las siguientes
pginas.
http://www.devjoker.com/contenidos/catss/240/Cursores-en-Transact-SQL.aspx
Aqu hallar los conceptos de cursores TRANSACT SQL.
http://www.a2sistemas.com/blog/2009/02/06/uso-de-cursores-en-transact-sql/
En esta pgina, hallar los conceptos y ejercicios de Cursores
http://www.devjoker.com/gru/Tutorial-Transact-SQL/TSQL/Tutorial-Transact-
SQL.aspx
Aqu hallar los conceptos de programacin TRANSACT SQL.