Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ubicar el ultimo registro ado.locate (https://www.clubdelphi.com/foros/showthread.php?t=83832)

giocatore 03-08-2013 05:46:42

ubicar el ultimo registro ado.locate
 
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.

Código Delphi [-]
  ADOTable1.Locate('nombre;mes', VarArrayOf(['juan','febrero']), []);

Saludos. :)

oscarac 04-08-2013 01:15:24

Cita:

Empezado por ecfisa (Mensaje 464911)
Hola giocatore.

Código Delphi [-]
  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(), 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:



Gracias :)

ozsWizzard 07-08-2013 12:04:25

Cita:

Empezado por giocatore (Mensaje 465124)
Gracias por las respuestas pués al final hice lo siguiente:
Código Delphi [-]
    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)


La franja horaria es GMT +2. Ahora son las 03:11:25.

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