PDA

Ver la Versión Completa : ubicar el ultimo registro ado.locate


giocatore
03-08-2013, 05:46:42
buenas noches, quisiera saber como puedo realizar un busqueda con locate y si por ejemplo encuentra más de un registro repetido escoja directamente el ultimo de la tabla con ese parámetro de busqueda:
ej:
adotable1.locate('nombre','juan',[]);

nombre \ telefono \ mes
juan 5551 enero
pedro 5554 marzo
luis 5556 junio
juan 5551 febrero
pedro 5554 abril

quiero usar locate e ir al registro de juan pero al que tiene el més de febrero espero puedan ayudarme

GRacias!!!

oscarac
03-08-2013, 06:26:01
Necesariamente tiene que ser con locate?

giocatore
03-08-2013, 07:30:05
Pués quisiera hacerlo con locate, ya que así ubico con mayor precisión los datos que quiero.
Gracias

ecfisa
03-08-2013, 08:32:37
Hola giocatore.


ADOTable1.Locate('nombre;mes', VarArrayOf(['juan','febrero']), []);


Saludos. :)

oscarac
04-08-2013, 01:15:24
Hola giocatore.


ADOTable1.Locate('nombre;mes', VarArrayOf(['juan','febrero']), []);


Saludos. :)

yo creo que los datos que coloco son de prueba (como ejemplo)

giocatore
04-08-2013, 23:26:52
pués exactamente los datos son solo para mostrar mi duda, lo que quiero hacer es que ubique a juan pero ván a haber muchos campos "mes" con contenido variable por lo que el locate convencional no me sirve, lo que busco es ubicar el último registro en la tabla correspondiente a juan.


Gracias

ozsWizzard
05-08-2013, 08:42:31
Locate sive si sabes lo que quieres encontrar y creo, ademas, que localiza el primero que encuentre. Si no se sabe que es lo que se quiere encontrar, hay dos opciones:

1.- No usar locate
2.- Obligar a saber que se quiere encontrar.

Hay solamente 12 meses, con un bucle de 12 a 1 se podría arreglar.

Un saludo

ecfisa
05-08-2013, 19:31:54
Hola giocatore.

Además de lo comentado, si pudieran existir dos o mas meses iguales para determinada persona, los tres campos que mencionas en tu primer mensaje podrían no ser suficientes para hallar el registro coincidente con el último mes de una persona.
Algunos gestores soportan funciónes tales como LAST() (http://www.w3schools.com/sql/sql_func_last.asp), pero no todos.

Saludos. :)

giocatore
06-08-2013, 22:12:30
Gracias por las respuestas pués al final hice lo siguiente:

datamodule3.c_tarifa.Filtered:=false;
datamodule3.c_tarifa.Filter:='Nombres_ap='''+edit1.text+'''';
datamodule3.c_tarifa.Filtered:=true;
datamodule3.c_tarifa.Last;

donde en edit1 ingreso el nombre del cliente a buscar. Hubiese querido hacerlo con locate, pero voy a seguir investigando :D

GRacias!!

Casimiro Notevi
06-08-2013, 22:36:52
Recuerda poner los tags al código fuente, ejemplo:

http://www.clubdelphi.com/images/UtilizarTAGs.png

Gracias :)

ozsWizzard
07-08-2013, 12:04:25
Gracias por las respuestas pués al final hice lo siguiente:

datamodule3.c_tarifa.Filtered := false;
datamodule3.c_tarifa.Filter := 'Nombres_ap = ' + QuotedStr(edit1.text);
datamodule3.c_tarifa.Filtered :=true;
datamodule3.c_tarifa.Last;

donde en edit1 ingreso el nombre del cliente a buscar. Hubiese querido hacerlo con locate, pero voy a seguir investigando :D

GRacias!!

Una pequeña modificación para que se vea el código más claro (al menos para mi gusto)