Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-04-2012
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 28-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola camiz.
Cita:
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.
Por eso mismo... Lo que te sugiere AzidRain (y pienso del mismo modo) es que pongas la restricción de UNIQUE al campo CODIGO, de ese modo, cuando intenten ingresar en ese campo un dato ya existente, la base de datos lanzará una excepción que podrás capturar y actuar en consecuencia.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 28-04-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
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||
Responder Con Cita
  #4  
Antiguo 04-05-2012
camiz camiz is offline
Miembro
 
Registrado: ene 2012
Posts: 69
Poder: 13
camiz Va por buen camino
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.

Código Delphi [-]
 
procedure TfrmAltaRepuestos.btn_arguardarClick(Sender: TObject);
//buscamos y comparamos el codigo del TDBEdit
   if (frmConeccion.Repuesto_vista_02.Locate('CODIGO', txt_arcodigo_repuesto.Text, [])) and (frmConeccion.Repuesto_vista_02CODIGO.Text = txt_arcodigo_repuesto.Text) then
    begin
   Application.MessageBox('Este código ya existe, debe crear otro para este artìculo.', 'Mensaje', MB_ICONSTOP or MB_OK);
  txt_arcodigo_repuesto.SetFocus;
  Abort;
   end
      else
   begin
frmConeccion.Repuesto_save2.Post;
end

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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 01:42:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi