![]() |
Inicio en interbase
HOla colegas....
Haber ...estoy iniciando en interbase y tengo algunas pregunticas para aquella persona amable que me pueda ayudar: -He notado que el interbase no tiene el tipo boolean. Parece ser que hay que simularlo con el Char(1).....o que? -Cuando estoy haciendo FOREIGN KEY a nivel de tabla yo configuro las acciones por si hay actualizaciones de la llave primaria a la que hace referencia las llaves foraneas...es decir ON UPDATE CASCADE ON DELETE CASCADE ETC... y se que estan los posibles valores tambien SET NULL (para poner en null la llave foranea si se borra la primaria) pero como hago para que cuando quiera borrar la llave primaria que tenga detalles en otra tabla, este no me permita la eliminacion y salga una excepcion...como si fuera paradox (y ojala una excepcion con un mensaje hecho por mi) |
Respecto de la primera pregunta, define un dominio de la siguiente manera:
a partir de entonces ya puedes usar el tipo TBoolean en tu base de datos. Respecto de la segunda pregunta puedes usar al final de tu tabla
Con esto prohibes el borrado de registros a los que se hace referencia desde otra tabla y en caso de actualización de la clave, propagas los cambios a las claves secundarias de las otras tablas. Un saludo |
Te Falto....
Te falto agregar lo siguiente Thales :
Cuan una tabla tenga relación (fk) con otras tablas hay que crear una Excepción Propia para avisarle al usuario la causa del error:
En delphi sólo cachas el error cuando borras el maestro Ejemplo: Saludos.... |
Puede ser muy interesante, en efecto, crear en la base de datos una excepcion que traduzca el mensaje que muestra por defecto interbase, pero con create exception sólo la creas, y deberías lanzarla también desde la base de datos (por ejemplo desde un trigger que se active antes de intentar el borrado), supongo que lo harás así.
Y, si me permites el comentario, respecto del código delphi que pones, no le veo mucho sentido a capturar una excepción para a continuación propagarla sin hacer nada antes. Un saludo |
Asi es
Cita:
Saludos. |
La franja horaria es GMT +2. Ahora son las 06:33:53. |
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