FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Evitar guardar duplicado
hola amigos del foro, nuevamente aqui necesitando de su ayuda.
tengo un problema y espero que me ayuden a resoverlo, les explico. lo que quiero hacer es impedir que se guarde un dato duplicado en una tabla de mi base de datos. mi base de datos es FIREBIRD.
Lo que deseo es que el campo CODIGO no se repita con los caracteres, o mas claro que no se duplique, he estado probando con este codigo pero siento que falta algo mas, el codigo funciona en el primer registro pero si ingreso el mismo dato sin cerrar el formulario se duplica pero si cierro el formulario despues de cada registro si funciona, el formulario lo boy ha usar para dar de alta registros sin cerrarlo.[/color] aqui el codigo:
el codigo lo ejecuto desde el boton guardar, espero que me ayuden a mejorarlo u con otro codigo o enseñarme a crear un TRIG en la base de datos. Última edición por camiz fecha: 28-04-2012 a las 02:14:41. Razón: agregar datos |
#2
|
||||
|
||||
Hola
O commit o CommitRetaining.
o
Saludos
__________________
Siempre Novato |
#3
|
||||
|
||||
Seré curioso, en que se diferencian CODREPUESTO y CODIGO? Ya tienes definida una clave primaria (CODREPUESTO) lo que indica que no puede haber dos registros con el mismo CODREPUESTO. Si no quieres cambiarlo, basta crear un índice con la opción UNIQUE para el campo código y atrapar la excepción al momento de tratar de guardar el dato ya que de esa forma la propia BD no permitirá duplicados en ese campo
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#4
|
||||
|
||||
Hola.
Tal vez entendí mal el problema, pero como dice AzidRain... ¿ No te serviría hacer ?
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
a ver
a ver si me dejo entender.
mi tabla tiene una clave primaria que es CODREPUESTO, aparte de esto quiero crearle a cada articulo que doy de alta una identificacion unica que no se repita para mas adelante poder identificarle, el dato se va a guardar en CODIGO Varchar(15) NOT NULL, en este ultimo el dato o codigo se va a ingresar mediante un DBEdit de forma manual por ejm BBB001, es como un codigo de barras o un nombre que identifica a un articulo pero con la diferencia que este sera unico. por eso quiero crearle un codigo delphi para comprobar el texto del DBEdit con los que ya estan guardados en la tabla y si se repite salte el error y no haga nada. Última edición por camiz fecha: 28-04-2012 a las 04:27:19. |
#6
|
||||
|
||||
Hola camiz.
Cita:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Yo creo que de entrada el diseño de la tabla está equivocado pues de acuerdo a lo que mencionas se obtiene que "No puede haber más de un registro con el mismo CODREPUESTO y el mismo CODIGO". Me huele a que CODREPUESTO es una clave artificial (un vil consecutivo u otro tipo) y CODIGO es la traducción a lenguaje "humano" de CODREPUESTO. Me parece que bastaría con que la tabla tenga como clave primaria una u otra. De acuerdo a tu caso CODREPUESTO es nuestra clave primaria y puede haber N registros que compartan el mismo CODREPUESTO pero difente CODIGO".
La pega viene cuando vemos que CODIGO al parecer puede ser capturado posteriormente a la creación del registro, por lo que en todo caso solo podría haber un solo registro en donde CONREPUESTO tenga valor y CODIGO sea nulo o en blanco. Sería mejor que nos regresaras un poco hacia atrás en el modelado de tu tabla o bien el caso de uso, ya que es más sencillo de entender que es lo que necesitas en realidad
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#8
|
|||
|
|||
solucionado
gracias a todos por sus comentarios, lo que yo necesitaba que la aplicacion haga era que el texto o codigo que ingresaba en un Edit (txt_arcodigo_repuesto) al momento de crear un registro no se guarde repetido.
creo que lo he solucionado con este codigo delphi despues de tantas trasnochadas tengo este simple codigo pero que en mi aplicacion si funciona como lo deseaba, lo comparto quizas a alguien novato como yo lo necesite.
he probado con muchos codigos pero este es el que funciona lo que hace es comparar el codigo que ya esta dado de alta o mas dicho guardado en la tabla con el de el DBEdit (txt_arcodigo_repuesto) que se esta ingresando y son iguales nos salta el error. y cancela todo. soy novato pero si a este codigo le falta algo es bueno su comentario. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Servicio duplicado | alapaco | Varios | 2 | 16-11-2009 19:51:18 |
Evitar guardar datos duplicados | bigpeter80 | Varios | 16 | 29-11-2008 14:10:02 |
Form duplicado | silviodp | OOP | 5 | 11-11-2008 18:33:57 |
Duplicado de tablas | teclilla | Tablas planas | 2 | 20-02-2008 16:12:33 |
Registro Duplicado | jmedina | Conexión con bases de datos | 0 | 17-11-2004 19:53:34 |
|