FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Como capturar un error de base de datos
Hola amigos, tengo un problema, quiero atrapar los errores de la base de datos pero no me funciona, por ejemplo cuando se inserta una valor que ya existe siendo llave primaria, quiero mandar un mensaje de que ya existe ese dato, estoy utilizando tablas de DB2.
Con tablas de paradox utilizaba el sig. Código en el botón de guardar. begin try if (pass.Text='') or (pass2.Text='') or(nom.Text='') or (userr.Text='') then begin guardar.enabled:=false; application.messagebox('No Puede Haber Campos Vacios','Validacion De Datos',mb_ok+mb_iconerror); end else begin tuser.Post; tuser.First; pass2.Text:=''; end; except on EDBEngineError do begin application.messagebox('Este Usuario Ya Existe','Validacion De Usuario',mb_ok+mb_iconerror); cancelarClick(Sender); end; end; pero no me funciona con tablas de db2. Un amigo me paso el sig. Codigo If (e is EDBEngineError) then If EDBEngineError(e).errorcode=9729 Then showmessage (‘este usuario ya existe’) Else Raise; Pero tampoco me funciona, me marca error donde dice errorcode Y como yo soy nuevo en eso de atrapar errores estoy hecho bolas. Alguien podria echarme una mano, según los comentarios que me han hecho llegar el segundo codigo es el mas adecuado para lo que quiero realizar, pero no lo he podido implementar. Podrían decirme que es lo que debo de declarar para que me funcione, si lo tengo que manejar como un procedimiento o como un evento o si alguien fuera tan amable y pudiera darme un pequeño ejemplo se agradecería eternamente. Su amigo carlos |
#2
|
||||
|
||||
Que tal
yo tengo el mismo problema todavía... pero por motivos de tiempo tuve que solucionarlo no como yo hubiera querido, en fin, espero que alguien aporte alguna solución... yo que yo hice fue lo siguiente
en fin, a mi tampoco me gusta, pero así tuve que hacerlo.... recuerda que requieres dbtables para reconocer a EDBEngineError con tu ejemplo sería algo así como:
__________________
Última edición por ContraVeneno fecha: 20-06-2005 a las 19:38:42. |
#3
|
||||
|
||||
Bueno, pues parece que este hilo está TRIPLICADO, quizás trabaje para Hacienda... (ya sé chiste malo, perdón).
Los dos hilos anteriores son estos, (uno de ellos cerrado) http://www.clubdelphi.com/foros/showthread.php?t=22511 http://www.clubdelphi.com/foros/showthread.php?t=22515 La respuesta la publiqué en este hilo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
|