Club Delphi  
    Paypal   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

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 14-12-2007
FelipeDiaz FelipeDiaz is offline
Miembro
 
Registrado: may 2007
Posts: 75
Poder: 20
FelipeDiaz Va por buen camino
Talking Eureka

Hola neftali y Lepe.

Antes que todo muchas gracias de seguro que ambas funcionan.
El problema es que no domino el tema bien pero con la orientacion de ustedes uno se acerca y parende, me demore en dar con la forma apropiada para el codigo.

A la alternativa de Neftali es facil hacerle seguimiento, y comprenderla...la E.ClassName es...... "EFIBInterBaseError"

y con la instruccion.. Showmessage(inttostr(E.SQLCode));,

pude saber cual es el codigo.

PERO..... para la violacion de la clave Primaria y para la violacion de la unicidad del Nombre del cliente, me genera el mismo error. "-803"

En cambio para la violacion del check de "CUPO<=0", si me da Error "'297".

El codigo al final queda de esta forma:

Código Delphi [-]
 
  except
     on E:EFIBInterBaseError do
         begin
            datamodule1.Database2.Rollback;
            if (E.SQLCode =-803) then
                 showmessage('Intenta crear un codigo de usuario que ya existe ')
            else
                 if (E.SQLCode =-297) then
                       showmessage('El cupo asignado debe ser un valor mayor que cero');
            end;
  end;


La alternativa de Lepe es mas avanzada, no la comprendí (ando a un nivel bajo aun) y no se que Unidad soporta el literal: strDebug.

Bueno en todo caso AUN SIGO SIN PODER IDENTIFICAR ENTRE LOS DOS PRIMEROS ERRORES... En el librode firebird dice:

Error -297 : Operation violates CHECK Constraint
Error -803 : Violation of PRIMARY or UNIQUE KEY Constraint

Pero ya comprendo que cuando se produce el mensaje de error el dice que clase es y la traduccion del Codigo como parece lineas arriba, ademas ese mensaje me dice en que constrain ocurre (es decir conociendo la REstriccion, se que campo afecta) pero no se como obtener la restriccion.

Para ampliar mas,
Cuando se produce el Error -803 ademas del mensaje "Operation violates ....." me aparece que ocurre en PK_Clientes, (ese es el nombre del constrain para la clave primaria).


Mi pregunta ahora es....... Como obtengo el nombre de la Constraint.?
__________________
El Calentamiento Global acabara con la tierra. No mas Barreras, No mas Guerras, No mas discrimiancion, No mas violencia, No mas indiferencia, No mas terrorismo, No mas secuestros. !Valoremos la vida!
Responder Con Cita
 


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
captura de errores de bases de datos en delphi 7 godie12345 Varios 5 11-12-2007 17:51:55
Manejo de consultas SQL y Bases de datos metroyd SQL 0 07-10-2007 22:28:59
manejo de errores douglas OOP 2 28-09-2007 12:54:32
manejo de errores de base de datos usando dbexpress e interbase ramirezjas Conexión con bases de datos 1 07-07-2007 21:15:13
manejo bases de datos anubis Tablas planas 2 14-05-2007 09:26:43


La franja horaria es GMT +2. Ahora son las 16:29:43.


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