FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Insertar registro en una tabla
Hola a todos, muchos saludos. Tengo el siguiente problema, trabajo en delphi 7 con una aplicación de bases de datos utilizando Microsoft SQL Server, tengo un formulario donde trato de insertar un nuevo registro en una tabla, utilizando los componentes de la paleta ADO. Tengo un ado connection, ado table y un datasource, además de diferentes dbedit que están enlazados a los campos de la tabla a la cual quiero agregar el nuevo registro. Tengo tres botones de comando, uno para agregar con el siguiente código:
Un botón cancelar con el código siguiente: Y por último un botón guardar con el código: El campo Idfactura es el campo llave de la tabla, por lo que he puesto esto para que alerte en caso de que la factura que se trata de introducir ya exista, pero esto no me funciona cuando pruebo la aplicación y pongo una factura ya existente y le doy al botón guardar se me levanta una exception en la clase EoleException advirtiéndome que hay una violation de la clave primaría, esto lo se por eso he puesto ese código para que no se levante la exception, pero no se cmo solucionarlo, y no quiero entrar en el mundo del tratamiento de las excepciones porque realmante es algo que lamentablemente no entiendo. Ojala me puedan ayudar. Muchas gracias por todo. |
#2
|
||||
|
||||
Desde el momento que haces el Post, ya no te sirve para nada la búsqueda puesto que ya se ha producido la excepción.
Lo mejor es que una vez que salgas del campo llave "OnExit", lances un SQL averiguando si te devuelve algún registro igual que el que pretendes grabar, si es así tu mismo , en caso contrario es cuando haces el Post. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
Gracias marcoszorilla por tu consejo, pero como he dicho en otras ocasiones me falta mucho por caminar en delphi, probé lo que me dijiste pero quitando el código donde está el método locate y colocándolo en el evento onexit del dbedit donde capturo el número de la factura, y nada me lanza otra excepción diciéndome que el campo donde capturo la descrpición de la factura no puede contener un valor nulo, esto ocurre nada mas salir de ese primer edir cuando se desencadena el evento onexit. Si no te s molestia podrias mostarme con un ejemplo lo que me explicaste, disculpa tanta molestia. Gracias.
|
#4
|
||||
|
||||
Anula el método Post y colócalo dentro de un if en el que se evalue si la consulta SQl devolvio o no registros. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
mascoszorrilla, disculpame a lo mejo te tengo obstinado con esto, pero no acabo de encontrar la solución, he probado y nada me sigue saliendo el mismo error, incluso eliminé el método post en el evento click del botón guardar y da lo mismo, no se que hacer, estoy buscando por donde quiera la solución, he consultado la yuda del delphi y nada.
|
#6
|
||||
|
||||
Hola,
en el momento en que haces el post se actualiza el registro y casca si se repite el dódigo. Cuando haces el locate, dado que el registro activo cambia, hace post automático y te casca. Prepara una query diferente que haga una select mirando el código de ese registro. Si los registros devueltos son más de 0 , obviamente, está repetido. Pon ese codigo en el evento beforePost de la tabla, y a correr. Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla | taru | MySQL | 1 | 27-07-2006 15:36:12 |
Insertar un registro en una tabla Paradox | maravert | Tablas planas | 1 | 14-10-2005 02:08:02 |
Comparar un registro de un edit con un registro de una tabla en una consulta | Damian666 | SQL | 10 | 01-10-2005 00:43:20 |
Insertar registro en tabla | jzk | Conexión con bases de datos | 15 | 26-05-2004 18:58:19 |
Borrar e Insertar un registro de una tabla con Query | Draco | Conexión con bases de datos | 4 | 06-05-2004 17:27:37 |
|