![]() |
advertencia SQL Server 2000
Estimados, el problema que se planteo a continuación está relacionado con Delphi 7, SQL Server 2000 y componentes nativos de ADO.
Tengo un procedimiento almacenado que ejecuto a través de un TADOQuery, el cual me devuelve mensajes de advertencia del tipo:
El analizador de SQL me devuelve correctamente los datos, pero en cambio, el TADOQuery me muestra la advertencia en pantalla ya que la toma como un error. ¿Cómo puedo hacer para discriminar estos mensajes de advertencia? Un Saludo y muchas gracias por leer este hilo. |
Utiliza un Try..except cuando lanzas el ADOQuery (Exec/Open) y captura las excepciones de tipo EOLEException.
A partir de ahí consulta el E.ErrorCode para determinar qué ErrorCode trae esta y discrimina las de ese error. |
Muchas gracias por ayudarme!! Siempre se aprenden cosas nuevas y hoy ya he cumplido :)
La discriminación del error no me ha solucionado el problema del todo. Código:
try La idea es 'pasar del warning' (el analizador lo muestra como una advertencia y muestra los datos). |
Comparto con todos la información que he encontrado acerca de este problema.
En http://www.sommarskog.se/error-handling-I.html#ADO dice lo siguiente: Cita:
|
Debido a que el único caso ocurre con el warning division by zero, como solución provisional he incorporado una comprobación en el procedimiento almacenado antes de obtener el resultado de la operación.
Con esto, si la fórmula contiene alguna división entre cero, evito que se ejecute el procedimiento que me calcula el resultado de la fórmula. como he dicho antes, esto es una medida provisional ya que no estaría contemplado el caso de una división entre un paréntesis cuyo resultado sea cero. Ej: 250/(10-10) Debería ir obteniendo resultados parciales y realizando la misma comprobación pero ando pillado de tiempo y lo dejo para otro rato. Muchas gracias a todos los que habeis dedicado tiempo a leer este hilo y en especial a Neftali por su respuesta. Un saludo a tod@s. |
Bueno, pues 9 meses después creo tener la solución a mí problema. Voy a detallar paso por paso los problemas que he tenido...
1- La siguiente consulta me da error de división por cero: Código:
Código:
SET ANSI_WARNINGS OFF Código:
SET ANSI_WARNINGS OFF |
Pero el error original que tiene que ver con la division por 0? ME PERDI!
Esos es un desbordamiento, tipico de poner un unicode char/varchar y meterle un ANSI char. |
Cita:
|
La franja horaria es GMT +2. Ahora son las 18:14:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi