Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-05-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cool ¿Qué tan similares son los mensajes de error entre distintos servidores SQL?

¡Hola a todos!

Desde que trabajo con tres capas (en realidad todavía 2.5) trato de hacer las cosas de manera que el código esté lo menos "atado" posible a un solo tipo de base de datos, puesto que de un momento a otro el cliente puede solicitar cambiar de manejador de base de datos (entre otras razones).

Por ello es que vengo creando algunas plantillas y clases de objetos que me permiten "transparentar" el manejo de diversos aspectos de un servidor de base de datos.

En este momento tengo la inquietud de saber qué tan consistentes o similares son los mensajes de error que emiten servidores SQL como Firebird, Oracle, My SQL, SQL Server, DB2, Informix, PostgreSQL, etc.

Por ejemplo, estos son típicos mensajes de error en InterBase / Firebird:

Campo obligatorio; su nombre aparece en el mensaje, pero no el nombre de la tabla a la que pertenece:

SQL Server Error: validation error for column NOMBRE, value "*** null ***"

Valor duplicado en índice único; el nombre del índice aparece en el mensaje:

SQL Server Error: attempt to store duplicate value (visible to active transactions) in unique index "IXDEPARTAMENTOSNOMBRE"

Violación de llave foránea (cuando el ID que intentas asignar ya no existe o cuando no puedes eliminar un registro porque tiene referencias); aparece el nombre de la llave foránea en el mensaje, además de la tabla a la que pertenece esa llave:

SQL Server Error: violation of FOREIGN KEY constraint "FKDEPARTAMENTOSIDEMPLEADOSR" on table "DEPARTAMENTOS"

Les pido de la manera más amable que me proporcionen algunos ejemplos de esos mismos típicos mensajes de error, pero de otros manejadores de bases de datos. Voy a diseñar algunos métodos de mis clases en función de los patrones comunes que vea en dichos mensajes.

Muchas gracias.

Al González.
Responder Con Cita
  #2  
Antiguo 24-05-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Me da la impresión de que hay que ver en lugar del "mensaje", es el código de error que te generan.

Y es que estoy pensando que la manera de ver esto, es atraves de la captura de excepciones (try...except). Con lo que veo aquí otro problema, ya que dependiendo de los componentes que estes utilizando, será el número de error que te regresen, es decir, el mensaje puede ser el mismo: "Violación de llave duplicada", con lo que si estoy utilizando componentes ADO, el número de error para ese mensaje es el 321 (por ejemplo), pero si estoy utilizando componentes SQLDirect, el número de error para el mismo mensaje es 621.

En fin, a mi me parece que es mejor ver el código que generan en lugar de el mensaje.

Saludos.
__________________

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Traducción de los mensajes de error de servidores web Casimiro Notevi Humor 2 24-04-2007 17:17:00
Enviar mensajes entre PC's morta71 Varios 7 19-09-2006 15:47:08
Mensajes entre formularios Ju2an Varios 2 15-06-2006 20:13:09
Envio de Mensajes entre aplicaciones edgusano API de Windows 6 21-12-2005 08:25:11
Pasar mensajes entre aplicaciones snuffer Varios 4 21-11-2003 02:44:21


La franja horaria es GMT +2. Ahora son las 22:28:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi