Cómo manejar los errores de sql con sqlstate

Video: Manejo de excepciones en sql server

SQLSTATE especifica un gran número de condiciones anómalas en SQL. SQLSTATE es una cadena de cinco caracteres en el que sólo las letras mayúsculas UN mediante Z y los números del 0 al 9 son caracteres válidos. La cadena de cinco caracteres se divide en dos grupos: un código de clase de dos caracteres y un código de subclase de tres caracteres.

El código de clase tiene un estado después de la finalización de una instrucción SQL. Que el estado podría indicar la finalización exitosa de la declaración, o uno de varios de los principales tipos de condiciones de error. El código de subclase proporciona detalles adicionales sobre este particular, la ejecución de la instrucción.

El estándar SQL define cualquier código de clase que comienza con las letras UN mediante MARIDO o los números del 0 al 4, por lo tanto, estos códigos de clase significan lo mismo en cualquier aplicación. códigos de clases que comienzan con las letras yo mediante Z o los números 5 a 9 se dejan abiertas para los implementadores de definir porque la especificación SQL no puede anticipar todas las condiciones que pueden surgir en cada aplicación.

Video: SQL Server: Error conexion remota (Error 1326), conexion remota SQL

Sin embargo, los ejecutores deben usar estos códigos de clase no estándar lo menos posible para evitar problemas de migración de un DBMS a otro. Idealmente, ejecutores deben utilizar los códigos estándar mayor parte del tiempo y los códigos no estándar sólo bajo las circunstancias más inusuales.

Video: You have an error in your SQL syntax

Un código de clase de 00 indica la finalización con éxito. Código de clase 01 significa que la sentencia se ha ejecutado correctamente sino que se produce una advertencia. Código de clase 02 indica una condición de ausencia de datos. Alguna SQLSTATE código de clase que no sea 00, 01, o 02 indica que la declaración no se ha ejecutado satisfactoriamente.

Porque SQLSTATE actualizaciones después de cada operación de SQL, se puede comprobar después de cada instrucción se ejecuta. Si SQLSTATE contiene 00000 (Finalización con éxito), se puede proceder con la siguiente operación. Si contiene cualquier otra cosa, es posible que desee expandirse fuera de la línea principal de su código para manejar la situación. El código y el código de subclase clase específica de que una SQLSTATE Contiene determinar cuál de las varias posibles acciones que debe tomar.

Usar SQLSTATE en un programa de lenguaje de módulo, incluir una referencia a ella en sus definiciones de procedimiento, como muestra el siguiente ejemplo:

NUTRIENTES PROCEDIMIENTO (SQLSTATE,: CHAR foodname (20),: calorías SMALLINT,: DECIMAL proteína (5,1),: DECIMAL grasa (5,1) ,: DECIMAL carbo (5,1)) INSERT INTO ALIMENTOS (FoodName, Calorías , proteínas, grasas, hidratos de carbono) VALUES (foodname:,: calorías, proteínas:,: grasa,: carbo) -

En el lugar correspondiente en su programa de lenguaje de procedimientos, se puede hacer que los valores para los parámetros disponibles (tal vez mediante la solicitud de ellas por parte del usuario) y luego llamar al procedimiento. La sintaxis de esta operación varía de una lengua a otra, pero se ve algo como esto:

Video: INSTALAR Y CORREGIR LOS ERRORES DEL SQL SERVER 2008 R2

foodname = "Okra, hervido" -calories = 29 -proteína = 2,0 -fat = 0,3 -carbo = 6,0 -NUTRIENT (estado, foodname, calorías, proteínas, grasas, carbo) -

El estado de SQLSTATE se devuelve en la variable estado. Su programa puede examinar esta variable y luego tomar la acción apropiada basándose en el contenido de la variable.

Artículos Relacionados