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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-01-2009
Avatar de pablonill
pablonill pablonill is offline
Miembro
 
Registrado: dic 2006
Posts: 92
Poder: 18
pablonill Va por buen camino
Ayuda, EDataBaseError

Hola, muchas gracias por tomarse tiempo y leer mi problema, paso a detallarles mi inconveniente.

Esto me sucede con los siguientes bases de datos, Sql Server, Interbase, Firebird (con estas probe)
y con los siguiente controles DBX, IBX, UniDac, IBDac

El tema es el siguiente, tengo una tabla como la siguiente:

ID integer unico requerido llave
Usuario varchar (20) requerido

La idea es la siguiente, tengo un formulario con controles db adware, con un datasource enlazado a una tabla o query que a su vez esta enlazado con la base de datos, tambien tengo dos botones, uno que se llama guardar y otro cancelar, en el boton guardar llamo al metodo post y en el cancelar al metodo cancel (este formulario es creado por otro y antes de crearlo llama al metodo append), lo que quiero es que si el usuario deja un campo en blanco o viola alguna de las restricciones impuestas en la creacion de la tabla mostrar un mensaje de error personalizado, perooooo, la unca excepcion que lanza delphi es EDataBaseError el cual no me sirve mucho porque no puedo sacar los error codes del motor de base de datos, el classname que me da el EDataBaseError es EDataBaseError o sea no me da referencia a ningun error del motor especifico, o sea que es una exepcion generica de la base de datos, probe diez mil formas y no se como hacer, es el problema de los controles db adware que lanzan la exepcion generica antes que se genere el error del motor de base de datos, tambien probe con try except y lo mismo me sigue saliendo el EDataBaseError, y ya me estoy volviendo loco porque mi ignorancia no me permite saber el porque y el como de la cuestion!, si alguien tiene algun ejemplo en concreto para que pueda estudiarlo o la solucion se lo voy a agradecer. Muchas gracias por leer mi extenso problema y espero poder solucionar y poder publicar el codigo de mis mensajes personalizados asi ahorrarle el dolor de cabeza a alguien. Muchas gracias. Antes que me olvide, utilizo delphi 2009.

P.D.

Tambien use los constrains de las tablas y tampoco capturan los errores.

Última edición por pablonill fecha: 26-01-2009 a las 02:44:19.
Responder Con Cita
  #2  
Antiguo 26-01-2009
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
a ver, te manda el error ANTES de del motor de la base de datos? si es asi, crea los campos persistentes y utiliza el evento onvalidate para validar los datos tu mismo
Responder Con Cita
  #3  
Antiguo 26-01-2009
Avatar de pborges36
pborges36 pborges36 is offline
Miembro
 
Registrado: oct 2004
Ubicación: Argentina
Posts: 192
Poder: 20
pborges36 Va por buen camino
Hola pablonil. Para saber el error que te da uso lo siguiente:
Código Delphi [-]
try
  Query1.ExecSQL;
except
  on e : EDatabaseError do
    begin
         MessageDlg('mysql ha dicho: '+e.Message, mtWarning, [mbOK], 0);
     end;
end;

De todas formas podriamos ayudarte mas si pusieras un ejemplo de tu codigo.
Saludos.

Última edición por pborges36 fecha: 26-01-2009 a las 15:49:00. Razón: error ortografia
Responder Con Cita
  #4  
Antiguo 26-01-2009
Avatar de pablonill
pablonill pablonill is offline
Miembro
 
Registrado: dic 2006
Posts: 92
Poder: 18
pablonill Va por buen camino
Listo, solucionado.

El tema era el siguiente y lo saque por deduccion, lo cual no indica que sea lo correcto, el tema es que funciona.

Primero tomo la tabla, le voy al Fields Editor... una vez alli recupero todos los campos que la componen, a los campos que tengo les quito la propiedad Required y listo. Por lo visto al quitarles la propiedad Required evito que delphi sea el que me haga la validacion del campo y me de el EDataBaseError, cuando le quito el Required delphi envia el campo tal cual se lo ingresa y entonces el motor de base de datos es el que se encarga de devolver el error. Muchas gracias.
Responder Con Cita
Respuesta



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
EDataBaseError... Rogersito Plus Firebird e Interbase 11 12-07-2007 16:08:18
Ayuda para crear ayuda... Gabriel2 Varios 2 10-06-2005 00:15:18
No puedo detectar la excepción "EDatabaseError" Adan Conexión con bases de datos 8 21-03-2005 20:07:24
EdatabaseError FIELD NOT FOUND en consulta JOIN syntetiko SQL 5 02-10-2004 00:35:31
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59


La franja horaria es GMT +2. Ahora son las 13:57:21.


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