| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Peruzzi Invitado
|
Publicado: Mie 30 Abr, 2003 5:22 pm Asunto: URGENTE:No dejar repetir |
|
|
| Sin usar un modulo de datos como hago para si quiero introducir un elemento que ya esta en una base de datos me de un mensaje de error???? |
|
| Volver arriba |
|
 |
cancun Ens

Registrado: 22 Mar 2003Mensajes: 32Ubicación: Cancun, Q.Roo, México
|
Publicado: Mie 30 Abr, 2003 7:16 pm Asunto: |
|
|
Queeeeee ??????????
Que elemento ?
Trata de ser más claro por que no entiendo bien que quieres decir. _________________ Saludos
Roger Ruiz |
|
| Volver arriba |
|
 |
Peruzzi Invitado
|
Publicado: Mie 30 Abr, 2003 9:56 pm Asunto: Urgente |
|
|
| A ver si tengo una base de datos con unas tablas y en esas tablas unos elementos pues que si quiero añadir un nuevo elemento no me deje meter elementos que ya estan en esa tabla. To do eso sin usar un modulo de datos. |
|
| Volver arriba |
|
 |
Marky Master

Registrado: 28 Dic 2002Mensajes: 251Ubicación: Las Rozas - Madrid (España)
|
Publicado: Mie 30 Abr, 2003 11:44 pm Asunto: |
|
|
Me pareció leer un mensaje ayer en el foro que lo epxlicaba. Como ahora no lo encuentro aquí va la respuesta: tienes que utilizar el método Locate. Ejemplo:
| Código: |
TLocateOptions Opts;
Opts.Clear();
//búsqueda no sensible a mayusculas y minusculas
Opts << loCaseInsensitive;
Variant locvalues= Variant(Edit1->Text);
if(Table1->Locate("Tu_campo", locvalues, Opts))
ShowMessage("ya existe ese registro");
|
Espero que te sirva |
|
| Volver arriba |
|
 |
Peruzzi Invitado
|
Publicado: Mie 30 Abr, 2003 11:57 pm Asunto: Urgente |
|
|
| Pero ese trozo de codigo donde lo tengo ke poner??en que evento o funcion??? |
|
| Volver arriba |
|
 |
cancun Ens

Registrado: 22 Mar 2003Mensajes: 32Ubicación: Cancun, Q.Roo, México
|
Publicado: Jue 01 May, 2003 2:30 am Asunto: |
|
|
Hola Peruzzi
Podrías ser más claro, y especificar por ejemplo a que tipo de base de datos que manejas (Acess, Interbase, Paradox), un elemento es un registro para tí ?, que componentes estas usando ?
Por ejemplo si tienes un TTable conectado a tu tabla, con el método Append agregas un registro.
Table1.Append;
Para manejar componentes que accesen las tablas no es necesario usar un modulo de datos, puedes colocarlos sobre un Form.
Espero que esto sea lo que preguntas. _________________ Saludos
Roger Ruiz |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Jue 01 May, 2003 11:21 am Asunto: |
|
|
| Si es una tabla Access, puedes definir el campo como Indexado (sin duplicados) |
|
| Volver arriba |
|
 |
_Tugui Invitado
|
Publicado: Jue 01 May, 2003 2:41 pm Asunto: |
|
|
Aver Peruzzi , el siguiente código inserta el texto de un TEdit en una tabla PARADOX7 al pulsar un botón, no sin antes comprobar si ese texto ya existe en la tabla en cuyo caso nos saldrá el mensaje avisándonos de que ya existen esos datos y el registro no se va a hacer.
Es lo mismo hacerlo así que con el módulo de datos, sólo que así no hay que escribir tanto ya que el TTable se inserta directamente sobre el FORMULARIO:
AnsiString dato_a_insertar = Edit1->Text;
TLocateOptions opciones;
opciones.Clear();
bool dato = Table1->Locate("Nombre",dato_a_insertar,opciones);
if (dato){ /*SI EL TEXTO YA ESTÁ EN LA TABLA...*/
Application->MessageBoxA("Ya existe un registro con estos
datos.","¡Aviso!",MB_OK | MB_ICONSTOP);
}
else { /*Y SI NO ESTÁ LO INSERTAMOS..*/
Table1->Insert();
Table1Nombre->Value = dato_a_insertar;
Table1->Post();
}
/*Espero que esta vez lo hayas entendido mejor.
SALUDOS.*/ |
|
| Volver arriba |
|
 |
|