![]() |
De donde se levanta el mensaje de error?
Ya he desmarcado la opcion "Tools, Debugger Options, Stop on Delphi Exceptions", pero al parecer no tiene efecto sobre este codigo:
try Query.Post; DM.DB.ApplyUpdates([Query]); except on E:EDataBaseError do begin ShowMessage(E.message); Query.Edit; exit; end; end; La ejecucion se detiene en el metodo ApplyUpdates y no continua la ejecucion, es decir no ingresa al bloque except, alguien podria explicarme porque el mensaje de error, se levanta desde el lenguaje de programacion y no desde el gestor de base de datos? Repito ya he desmarcado la opcion "Tools, Debugger Options, Stop on Delphi Exceptions". |
Cita:
Cita:
|
Muchas Gracias y Ayuda II
Muchas gracias por el consejo, ahora me podrias ayudar a cambiar el mensaje? lo he intentado por todos los medios y no he obtenido la forma de hacerlo.
Desde ya gracias de nuevo. |
Cita:
|
Obtener el SQLCode y luego cambiar el mensaje de error
He intentado este codigo y nada:
Probablemente es por la version de Delphi que utilizo (4), que no posee los componentes IB (interbase), lo que no he podido es adaptar este codigo a la version que utilizo. |
Otra opcion que he probado es:
No pude cambiar el mensaje de error. |
Me he permitido el lujo de modificar tus mensajes para poner el código entre las etiquetas [ delphi ] y [ /delphi ] (sin espacios)
Mucho mejor, verdad? Ahora al menos el código es legible ;) EDITO: Bien, ahora que he visto el código, los comentarios :p Esto.... pero que no estabamos hablando de un bloque try...except...end?? Lo que estás programando es un "concentrador" de excepciones. Y, aunque programes eso, has de poner las excepciones que quieres controlar, no las que te den los ejemplo. Aunque el segundo ejemplo que pones...... te ha de mostrar el mensaje de la excepción pertinente Pero sigo sin entender lo que quieres decir con eso "no poder cambiar el mensaje de error" :confused: |
Por ejemplo al duplicar claves primarias
Al duplicar claves primarias obtengo este mensaje:
"KeyViolation. Violation of Primary or Unique Key constraint"NOMBRE_CONSTRAINT" on table "NOMBRE_TABLA"" y sinceramente no es muy amigable. Desearia poder cambiar este mensaje. |
Cita:
// Saludos |
No paso nada, excepto...
No hubo caso no pude levantar el mensaje, sere muy lento, lo que si me muestra ahora es la clase del error, junto con el mensaje anterior.
"KeyViolation. Violation of Primary or Unique Key constraint"NOMBRE_CONSTRAINT" on table "NOMBRE_TABLA"" EAbort - Operation Aborted. Ahora si ingresa al bloque except. |
a parte de que lo que comenta el amigo Román funciona y es la mejor opción, prueba...
|
Cita:
Yo aquí veo cosas muy raras. Sé, Morphine, que aseguras haber quitado la opción "Stop on Dephi Exceptions" pero la cosa es que el útimo mensaje que mencionas: "EAbort - Operation aborted" no sale ni con dicha opción activada. La única forma que yo conozco para que dicho mensaje te salga es que lo hayas quitado de la lista de excepciones (en la misma ficha de las opciones) así que creo que ya nos estamos confundiendo en esto. De cualquier forma me gustaría saber qué componentes estás usando (¿las del BDE?) y contra qué base de datos. |
Estoy utilizando un modulo de datos llamado DM y dentro de este tengo un componente Database (DB).
En un formulario "ancestro" inserte dos Querys (QCabecera y QDetalle) los datasources correspondientes y dos componentes UpdateSQL, todos los componentes del BDE. DSDetalle.Dataset:=QDetalle; QDetalle.Datasource:=DSCabecera; DSCabecera.Dataset:=QCabecera; Para grabar utilizo este codigo
Y luego heredo el formulario. La base de datos es Interbase 6.5. |
NO has leido lo que te ha dicho antes cadetill sobre la etiqueta [delphi] ¿¿:confused:??
¿o es que esperas que siempre un moderador edite tus mensajes? Yo en lo personal, paso de los mensajes que no usan estas etiquetas, pues el código es realmente ilegible. Te recomiendo, si esperas seguir obteniendo ayuda, que edites vos mismo tu mensaje y uses las etiquetas. Si no sabes como, en mi firma hay un vínculo a la ayuda de la etiqueta [code], que sigue el mismo principio de las otras, y al inicio de cada foro un mensaje que te explica cuales están disponibles y su funcionamiento. Hasta luego. ;) |
Ahi arregle el codigo, disculpas.
|
La franja horaria es GMT +2. Ahora son las 13:24:46. |
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