 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Julian Ens

Registrado: 23 Jul 2004Mensajes: 47
|
Publicado: Jue 23 Mar, 2006 10:58 pm Asunto: problemas con Locate() |
|
|
Hola amigos, estoy usando el método Locate(), para encontrar registros en tablas ADO, pero aparentemente no lo hace bien....
//----------------------------------------------------------------------------------
bool __fastcall TDM::BuscarRegistro(Variant NomCampo, TADOTable Tabla, Variant Vlr)
{
bool ok;
TLocateOptions Opts;
Opts.Clear();
Opts << loCaseInsensitive;
ok = Tabla->Locate(NomCampo,Vlr ,Opts);
return ok;
}
//----------------------------------------------------------------------------------
donde Nomcampo, es el campo clave en la tabla.
Tabla, es la tabla en la que voy a buscar
y Vlr, es el valor que deseo encontrar en la tabla.
si funcionara correctamente, Locate, devuelve un true, cuando encuentra el registro.. cuando el programa ejecuta, Locate, genera una excepción de Key violation, lo cual es correcto, pero la intención de este método es que me permita identificar violaciones de clave, antes de hacer un Post()..
Alguien sabe si Locate() inserta el registro con solo invocarle?
saludos, _________________ Julian Uribe Hernandez |
|
| Volver arriba |
|
 |
juanma Cmdr

Registrado: 17 Nov 2005Mensajes: 127Ubicación: Almeria - España
|
Publicado: Vie 24 Mar, 2006 4:30 pm Asunto: |
|
|
Yo uso bastante Locate y no inserta nada, solamente busca de acuerdo a las opciones de TLocateOptions, que no hace falta usarlo si la busqueda es normal.
Ej:
| Código: |
if (kQ2->Locate("cht", xE->cH, TLocateOptions())) {
...
}
|
Normalmete lo que busco esta en un string, salvo cuando busco por mas de un campo que uso el variant como en:
| Código: |
Variant alocv[2];
alocv[0] = Variant(cH);
alocv[1] = Variant(cD);
if (kQ2->Locate("cht;cod", VarArrayOf(alocv,1), TLocateOptions())) {
...
}
|
Cuando no he querido buscar exacto, y si que pare en el siguiente si no esta lo que busco, he utilizado la opction loPartialKey;
Tu código lo veo correcto, salvo que en la variable NomCampo utilices algo incorrecto.
Saludos. |
|
| Volver arriba |
|
 |
Julian Ens

Registrado: 23 Jul 2004Mensajes: 47
|
Publicado: Mar 28 Mar, 2006 2:10 pm Asunto: gracias |
|
|
Ya lo solucioné, estaba usando el Locate de forma incorrecta...
Mil gracias, _________________ Julian Uribe Hernandez |
|
| Volver arriba |
|
 |
Bitman Lt

Registrado: 30 Mar 2004Mensajes: 80
|
Publicado: Mar 20 May, 2014 4:21 pm Asunto: |
|
|
Y que era lo que usabas incorrectamente???
Yo lo estoy usando tal cual y no me funciona... curiosamente cuando solo busco por un campo.. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|