![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Mensaje de error cuando hay datos duplicados en la base
Gente actualmente me encuentro conectano una base de datos con mysql y builder 6, para agregar los datos utilizo un navigator pero no se como evitar el error de cuando se duplican entonces quiero saber como hago para comprobar si ya existe el cliente o el dato utilizando el navigator
|
#2
|
|||
|
|||
Adjunto esta otra imagen... para q vean los mensajes q me dan...
|
#3
|
||||
|
||||
Depende de como hayas hecho el sistema de entrada de datos, lo normal es un formulario donde pides por ejemplo el dato "clave", "código", etc. entonces compruebas si existe. En caso positivo, muestras los datos que ya existen o sacas un mensaje diciendo que existe y que teclee otro, etc. a tu gusto.
La verdad es que tu pregunta no está muy clara, es muy amplia y puede contestarse muchas cosas, debes ser más específicos, dar más información, ya sabes: a mejores preguntas... mejores respuestas ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#4
|
|||
|
|||
En realidad es un sowfware tipo registro en donde agrego cedula q es llave nombre una direccion y una fecha de nacimienton, utilizo una herramienta llamada dbnavigator para hacer la insercion a la base de datos en este caso utilizando MYSQL y entonces quiero evitar el error de
agregar datos duplicados en la base.... |
#5
|
||||
|
||||
Hola Jusar.
Una solución es aprovechar el evento OnSetText del campo que no debe estar duplicado. El evento OnSetText de la clase TField se dispara cuando se le asigna un valor a la propiedad Text, pero antes de que sea guardado. Para ejemplificar voy a utilizar como nombre de tabla CLIENTES y como nombre del campo CLIENTE_ID: Código:
void __fastcall TForm1::IBDataSet1CLIENTE_IDSetText(TField *Sender, const AnsiString Text) { TuQuery->Close(); TuQuery->SQL->Clear(); TuQuery->SQL->Add("SELECT * FROM CLIENTES "); TuQuery->SQL->Add("WHERE CLIENTE_ID = :VALOR"); TuQuery->ParamByName("VALOR")->AsString = Text; TuQuery->Open(); if (!TuQuery->IsEmpty()) { MessageBox(Handle,"El dato que desea ingresar ya existe", "ERROR", MB_ICONERROR); Abort(); } IBQuery->Close(); } Código:
void __fastcall TForm1::FormCreate(TObject *Sender) { DataSet->FieldByName("CLIENTE_ID")->OnSetText = DataSetCLIENTE_IDSetText; } Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
mensaje no se cierra cuando inicio un programa | granodetoro | Varios | 5 | 07-04-2011 21:24:49 |
Mensaje para no duplicar la clave primaria de la base de datos | ivansito | PHP | 8 | 08-08-2007 00:53:51 |
Borrar datos duplicados | Sr.Scorpion | Conexión con bases de datos | 4 | 20-06-2005 19:52:57 |
error al abrirse la aplicación cuando la base de datos esta en un 2003 server | Giniromero | Conexión con bases de datos | 2 | 15-03-2005 10:09:35 |
Qreport se me queda pillado cuando mi base de datos es muy grande | Nbull | SQL | 5 | 23-11-2004 17:01:37 |
![]() |
|