Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-09-2005
URBANO URBANO is offline
Miembro
 
Registrado: Jul 2003
Ubicación: Huelva
Posts: 126
Poder: 16
URBANO Va por buen camino
Post Locate no buscar parcialmente, por que?

Hola Foro, tengo un query el cual muestra una serie de facturas ordenadas por el campo total (float, tablas en paradox).
En la ficha tengo colocado un edit y en el evento Onchange lo siguiente:
Código:
  datos.Qfacturas.Locate('TOTAL',strtofloat(edit1.text),[loPartialKey]);
La idea es que cada vez que yo introduzca un numero se ejecute este evento y el cursor que apunta a los registro se mueva, es decir, introduzco el 1, el curso se mueve al primer 1 que encuetre. Introduzco ahora el 2, el cursor se mueve al primer registro con 12.
Esto es la idea pero lo que ocurre es que el cursor no se mueve del primer registro. Que estoy haciendo mal?

Gracias y saludos.
__________________
El saber no ocupa lugar.
Responder Con Cita
  #2  
Antiguo 10-09-2005
Sirkius Sirkius is offline
Miembro
 
Registrado: Jun 2004
Posts: 83
Poder: 15
Sirkius Va por buen camino
Hola, he mirado la documentación y pone:

Cita:
If Options contains the loPartialKey setting, then Locate allows partial-string matching on strings in KeyValues.
Por lo que entiendo que el valor pasado en KeyValues debe ser un String. Prueba a pasarlo como un String y nos cuentas.

EDITO: pues no. Lo acabo de probar y no es por eso. En los Zeos lo coje bien siendo un integer. Mira a ver si hay problemas con los puntos de mil y la coma de decimales... no se me ocurre otra cosa...
__________________
SIN FIRMA :P

Última edición por Sirkius fecha: 10-09-2005 a las 12:47:59.
Responder Con Cita
  #3  
Antiguo 19-09-2005
URBANO URBANO is offline
Miembro
 
Registrado: Jul 2003
Ubicación: Huelva
Posts: 126
Poder: 16
URBANO Va por buen camino
Post

No creo que sea por el punto de mil , ni por la coma de decimales, ya que hay cantidades como '900' y tan poco la busca.

Tiene alguien alguna idea mas. Gracias.
__________________
El saber no ocupa lugar.
Responder Con Cita
  #4  
Antiguo 19-09-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: May 2003
Posts: 7.424
Poder: 23
Lepe Va por buen camino
Quita el lopartialkey, ya que 1 ya coincide con la búsqueda parcial, por tanto nunca buscará el 12.

Un saludo
Responder Con Cita
  #5  
Antiguo 06-10-2005
URBANO URBANO is offline
Miembro
 
Registrado: Jul 2003
Ubicación: Huelva
Posts: 126
Poder: 16
URBANO Va por buen camino
Lepe, he quitado lo que me comentas y sigue igual. Si estoy buscando el 107 , hasta que no escribo el 7 no se mueve al registro, es decir, hasta que no escribo el número exacto.

Alguien tiene alguna idea mas. No puede ser tan complejo hacer una busqueda por un numero.

Gracias.
__________________
El saber no ocupa lugar.
Responder Con Cita
  #6  
Antiguo 06-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: May 2003
Posts: 7.424
Poder: 23
Lepe Va por buen camino
Claro, como se me ha pasado ... jejeje
Código Delphi [-]
datos.Qfacturas.Locate('TOTAL', edit1.text ,[loPartialKey]);

tu le dabas el valor en Float, y lo toma como una unidad, es decir, de un número no puedes partir el primer caracter y/o el segundo, para poder hacerlo tiene que ser un String.

Al pasarle los datos como String (edit1.text) ahora si busca parcialmente. (que conste que lo he probado con un campo de tipo Entero, con un Float no).

saludos
Responder Con Cita
  #7  
Antiguo 07-10-2005
URBANO URBANO is offline
Miembro
 
Registrado: Jul 2003
Ubicación: Huelva
Posts: 126
Poder: 16
URBANO Va por buen camino
He probado lo que me has comentado (pero con el campo 'total' de tipo float) y tampoco funciona. Seguire buscando otra forma.

Gracias por las ideas. Alguien conoce otro metodo?
__________________
El saber no ocupa lugar.
Responder Con Cita
  #8  
Antiguo 08-10-2005
Avatar de Zeta
Zeta Zeta is offline
Miembro
 
Registrado: Feb 2005
Posts: 215
Poder: 14
Zeta Va por buen camino
Probaste con el componente gnu JEDI VCL tiene varios componentes que hacen eso:
el que uso yo y hace lo que escribiste en código (con la diferencia que no escribís una palabra) es el JvDBFindEdit y ponele en "Find Style" Navigate si querés que se te acomode en el primer registro (según FindMode) o filter (la que uso casi siempre yo); y funciona como un filtro, desapareciendo los datos no buscados.


Ni hablar, es lo que necesitás.

Fijate que tiene mucho otros componentes muy útiles.

Avisame como te va.


Saludos
__________________
And I'd like an hour on the holodeck with Seven of Nine.
Responder Con Cita
  #9  
Antiguo 12-10-2005
URBANO URBANO is offline
Miembro
 
Registrado: Jul 2003
Ubicación: Huelva
Posts: 126
Poder: 16
URBANO Va por buen camino
Donde puedo conseguir este componente para probarlo.
__________________
El saber no ocupa lugar.
Responder Con Cita
  #10  
Antiguo 12-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: May 2003
Posts: 7.424
Poder: 23
Lepe Va por buen camino
colocando JEDI VCL en google, aparece como primer resultado.

saludos
Responder Con Cita
  #11  
Antiguo 13-10-2005
Avatar de Zeta
Zeta Zeta is offline
Miembro
 
Registrado: Feb 2005
Posts: 215
Poder: 14
Zeta Va por buen camino
Exactamente como dice Lepe.
__________________
And I'd like an hour on the holodeck with Seven of Nine.
Responder Con Cita
  #12  
Antiguo 14-10-2005
david duarte david duarte is offline
Miembro
 
Registrado: Aug 2005
Posts: 217
Poder: 13
david duarte Va por buen camino
Hola!!!!

heme de nuevo aqui. bueno mi problema es el siguiente:

tengo una tabla con dos campos como llave primaria ej.

Folio(key) Num(key) valor1 valor2

001 01 2.25 1.25
001 02 1.25 2.25
002 01
002 02
003 01
004 01
lo que quiero hacer es que desde el principio busque en los 2 campos llave.:

al momento de que yo guarde en el folio 002 con el numero 02, se debe de ir directamente ese registro y guardar los resultados.

pero no se como ponerle en las opciones de TLocateLocateOption, porque si le pongo

loPartialkey solamente va a buscar en el campo que yo le diga p.e.

necesito que me muestre el folio 001 con el numero 05
Código Delphi [-]
 DataSet.Tabla.Locate(Folio, 'folio', [lopartialkey]);

y eso es lo que no quiero yo quiero que me busque en los dos campos como si fuera uno solo.

Lo que pasa es que si le pongo que me busque el folio con LoCaseInsensitive, me marca que no existe ese folio

Esto lo digo, porque en la tabla probablemente tenga

Gracias

Cómo te sientes hoy??

Última edición por david duarte fecha: 14-10-2005 a las 15:50:39. Razón: Complemento
Responder Con Cita
  #13  
Antiguo 14-10-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: May 2003
Posts: 7.424
Poder: 23
Lepe Va por buen camino
Si es que primero hay que mirar la ayuda de delphi

Código Delphi [-]
with CustTable do
  Locate('Company;Contact;Phone',
     VarArrayOf(['Sight Diver', 'P', '408-431-1000']), 
      [loPartialKey]);
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #14  
Antiguo 14-10-2005
david duarte david duarte is offline
Miembro
 
Registrado: Aug 2005
Posts: 217
Poder: 13
david duarte Va por buen camino
Sip. lo siento.

Lo que pasa es que me faltaban los parentesis.

Lo siento mucho

Gracias

Cómo te sientes hoy?

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:58:02.


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