Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 19
Ivan_25 Va por buen camino
Consulta SQL con Locate

Hola a tod@s!!!. Vamos a ver, tengo un Edit, sobre el que actua el evento onChange, y en este evento tengo un Locate para ir buscando en el campo nombre de una base de datos a medida que voy escribiendo. El problema es que no funciona siempre, es decir, me funciona si las letras que introduzco son unas y no me funciona si son otras. Por ejemplo, si la primera letra que introduzco es una 'a', si me busca cualquier nombre que contenga una 'a', pero si introduzco una 'e', no me busca nada. He probado a hacer la consulta en Access y si me funciona, aunque el like tengo que hacer con * en lugar de % como en builder. ¿Sabeis porque pasa esto?. La consulta que utilizo en builder es:

Select * from candidatos where Nombre like '%"+ENombre->Text.Trim()+ "%'

y la de access:

SELECT *
FROM candidatos
WHERE Nombre like '*e*';
__________________
Un saludo.

Iván.
Responder Con Cita
  #2  
Antiguo 16-11-2005
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
yo comprobaria varias cosas...

1º si introduces una "a"...y te la encuentra...y luego intruduces una "e"...entonces buscaria por .... "ae"...y puede que sea normal k no encuentre nada con esas letras.

2º si no es asi, mira si en la tabla que buscas hay algo que tenga "e"...a ver si va a ser eso.

sino puesssssss....prueba a hacerlo con otro evento, pq puede que haya algo raro...
__________________
Un saludo

Antonio
Responder Con Cita
  #3  
Antiguo 16-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 19
Ivan_25 Va por buen camino
Ya esta solucionado. El problema es que yo tenia el locate asi:


if(ADOQListacandidatos->Locate("Id", ECodigo->Text.Trim(), Opts)==true)
{}

quitandole el if ya funciona.

Otra pregunta, vamos a ver, cuando busco por codigo, como en este if anterior, al ser un campo clave, cuando borro el codigo que he metido para poner otro me da falla la aplicacion, y lo he solucionado con :

if(ECodigo->Text == "") ECodigo->Text = 0;

pero es un rollo, porque tienes que escribir el codigo despues del cero, y despues borrar el cero. ¿Como puedo hacer para que al dejar el campo en blanco no me falle?
__________________
Un saludo.

Iván.
Responder Con Cita
  #4  
Antiguo 16-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 19
Ivan_25 Va por buen camino
Ya esta solucionado:

if(ECodigo->Text != "")
{
ADOQListacandidatos->Locate("Id", ECodigo->Text.Trim(), Opts);
ADOQListacandidatos->SQL->Clear();
ADOQListacandidatos->SQL->Add("Select * from candidatos where id like '%"+ECodigo->Text.Trim()+ "%' ORDER BY Id");
ADOQListacandidatos->ExecSQL();
ADOQListacandidatos->Active = true;
this->DBGCandidatos->DataSource = this->DSListacandidatos;
}
else
{
ADOQListacandidatos->SQL->Clear();
ADOQListacandidatos->SQL->Add("Select * from candidatos ORDER BY Id");
ADOQListacandidatos->ExecSQL();
ADOQListacandidatos->Active = true;
this->DBGCandidatos->DataSource = this->DSListacandidatos;
}
__________________
Un saludo.

Iván.
Responder Con Cita
  #5  
Antiguo 16-11-2005
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
Eres como juan palomo...

...YO ME LO GUISO YO ME LO COMO!!
__________________
Un saludo

Antonio
Responder Con Cita
  #6  
Antiguo 17-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 19
Ivan_25 Va por buen camino
Y que quieres, macho, cuando pregunto, sigo probando, y si doy con la solucion, la pongo.

Dime lo de las copias de seguridad de la base de datos.
__________________
Un saludo.

Iván.
Responder Con Cita
Respuesta



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 21:18:02.


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
Copyright 1996-2007 Club Delphi