Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2010
Bare Bare is offline
Miembro
 
Registrado: feb 2010
Posts: 29
Poder: 0
Bare Va por buen camino
Evitar Datos Repetidos??

Hola a todos, ahora me tope con este problema...
Necesito saber como hacerle para que el programa verifique que no exista un registro igual en la base de datos, como puedo hacerlo?
Dejen les pongo la idea que tenia, el codigo no esta correcto:

Código:
parametro1=ComboBox1->Text; //ANIO
parametro2=ComboBox2->Text; //LOCALIDAD
parametro3=ComboBox3->Text; //EVALUACION


ADOQuery->SQL->Text = "select * from Tabla_Prueba where [Año] = '"+parametro1+"'  AND Localidad = '"+parametro2+"' AND Evaluacion = '"+parametro3+"' ";


if( ADOQuery->SQL->Text == NULL ) {
//AGREGAR DATOS

else
SHOWMESSAGE("EL REGISTRO YA EXISTE"); 
}
Como pueden ver en el codigo,la idea es buscar un registro que coincida con Año, Localidad y Evaluacion, de ser asi, el registro ya esta y no puede agregarse de nuevo...
Alguna sugerencia?..Espero haberme dado a entender..
Responder Con Cita
  #2  
Antiguo 10-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Sí, la idea es correcta

Mira este tema que ha sido tratado hoy, puede servirte.
Responder Con Cita
  #3  
Antiguo 10-06-2010
Bare Bare is offline
Miembro
 
Registrado: feb 2010
Posts: 29
Poder: 0
Bare Va por buen camino
Que tal amigo, ya cheque el tema y me dejo pensando sobre lo de la llave primaria, pero el problema es que para saber si el registro existe, tienen que coincidir los 3 campos (AÑO,LOCALIDAD,EVALUACION),asi que no puedo usar lo del campo llave.
Pense en quizas hacer la consulta y mostrar los datos en un DBGrid, y despues verificaar si el grid esta activo y de esta manera saber si hay datos o no, peor no se si se pueda hacer esto...
Responder Con Cita
  #4  
Antiguo 10-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Las claves pueden ser de más de un campo, puedes hacerlo igualmente.
Responder Con Cita
  #5  
Antiguo 11-06-2010
Bare Bare is offline
Miembro
 
Registrado: feb 2010
Posts: 29
Poder: 0
Bare Va por buen camino
Bien!!!!!!!... :D

Que tal, hice los de las claves llave (yo pense que no se podia, jamas lo habia intentado) y funciono...
Pero me quedo una duda, porque si le agregas un dato y lo quieres volver a agregar te da el error de que no se puede duplicar, el problema aqui es que si le cambio algun valor en los combobox y le doy en agregar, no me deja, me sigue marcando el mismo error, y se supone que deberia dejarme, para que me deje tengo que cerrar la aplicacion y volver a abrirla.
No hay algun metodo para que no tenga que reiniciar la aplicacion?, intente con el Form->Refresh y nada....

Saludos
Responder Con Cita
  #6  
Antiguo 11-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Evidentemente, si no vemos tu código, poco podemos hacer
Responder Con Cita
  #7  
Antiguo 11-06-2010
Bare Bare is offline
Miembro
 
Registrado: feb 2010
Posts: 29
Poder: 0
Bare Va por buen camino
Aqui Esta

jejejejejeje, obvio, jejejeje..
aqui esta el codigo:

Código:
Tabla->Open();
Tabla->Insert();

//--------------------------------------------------
Tabla->FieldByName("Casos_sospechosos_colera_est")->AsString = Edit1->Text;
Tabla->FieldByName("casos_diarrea_notif_SUIVE")->AsString = Edit2->Text;
Tabla->FieldByName("casos_sospechosos_coleratrat")->AsString = Edit7->Text;
Tabla->FieldByName("Total_casos_colera")->AsString = Edit8->Text;
Tabla->FieldByName("cepas_positivasvibrio")->AsString = Edit18->Text;
Tabla->FieldByName("Total_muestrasproc")->AsString = Edit19->Text;
Tabla->FieldByName("Deter_cloro")->AsString = Edit26->Text;
Tabla->FieldByName("Total_detercloro")->AsString = Edit27->Text;

//------------------------------------------------------
Tabla->FieldByName("ID_coberturadeteccion")->AsString = Edit3->Text;
Tabla->FieldByName("ID_tratoportuno")->AsString = Edit9->Text;
Tabla->FieldByName("ID_eficiencialab")->AsString = Edit20->Text;
Tabla->FieldByName("ID_cloracionagua")->AsString = Edit28->Text;
//------------------------------------------------------
Tabla->FieldByName("P_coberturadeteccion")->AsString = Edit14->Text;
Tabla->FieldByName("P_tratoportuno")->AsString = Edit15->Text;
Tabla->FieldByName("P_eficiencialab")->AsString = Edit21->Text;
Tabla->FieldByName("P_cloracionagua")->AsString = Edit29->Text;

Tabla->FieldByName("Año")->AsString = ComboBox1->Text;
Tabla->FieldByName("Localidad")->AsString = ComboBox2->Text;
Tabla->FieldByName("Evaluacion")->AsString = ComboBox3->Text;




Tabla->Post();
Application->MessageBox ("Datos Grabados en la BD","Aviso", MB_OK);

//Form1->Refresh();//---ESTO FUE LO QUE INTENTE PERO NADA..:confused:
Responder Con Cita
  #8  
Antiguo 11-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No sé qué componentes o con qué estás trabajando, pero creo que necesitas un commit de la transaction.
Responder Con Cita
  #9  
Antiguo 12-06-2010
Bare Bare is offline
Miembro
 
Registrado: feb 2010
Posts: 29
Poder: 0
Bare Va por buen camino
Estoy trabajando con componentes ADO, me conecto con el ADOConection, enlazo las tablas con ADOTable y DataSource.
Responder Con Cita
  #10  
Antiguo 12-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues, lo dicho, seguramente necesitas hacer commit
Responder Con Cita
  #11  
Antiguo 12-06-2010
Bare Bare is offline
Miembro
 
Registrado: feb 2010
Posts: 29
Poder: 0
Bare Va por buen camino
Y eso como se hace?, es dificil? me podrias explicar o darme un ejemplo??--
Responder Con Cita
  #12  
Antiguo 12-06-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo no uso ADO, pero haz una búsqueda en clubdelphi con esos parámetros, se ha tratado varias ocasiones. Buscar por ADO* transaction
Responder Con Cita
  #13  
Antiguo 12-06-2010
Bare Bare is offline
Miembro
 
Registrado: feb 2010
Posts: 29
Poder: 0
Bare Va por buen camino
Gracias por la info, encontre algunos posts aqui y mas info gogleando.
Muchas Gracias por todo..
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
Datos se muestran repetidos elarys Impresión 2 15-01-2010 18:34:37
TRxDBLookupCombo. Problema de desplazamiento en datos repetidos. Jose_Pérez OOP 0 07-02-2006 14:49:32
datos repetidos en tabla marceloalegre SQL 3 03-08-2005 20:37:47
ordernar nombres y evitar nombres repetidos en DBLookupComboBox @-Soft Conexión con bases de datos 4 14-01-2004 16:30:51
Datos repetidos... SQL... emeceuy Conexión con bases de datos 6 18-08-2003 15:10:41


La franja horaria es GMT +2. Ahora son las 23:54:19.


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