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 06: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 07:26:01

Necesariamente tiene que ser con locate?

giocatore 03-08-2013 08: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 09:32:37

Hola giocatore.

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

Saludos. :)

oscarac 04-08-2013 02: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 05-08-2013 00: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 09: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 20: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 23: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 Noteví 06-08-2013 23:36:52

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

ozsWizzard 07-08-2013 13: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 12:50:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi