Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Por favor tengo un poco de prisa con la respuesta (https://www.clubdelphi.com/foros/showthread.php?t=23219)

ElDioni 11-07-2005 12:32:21

Por favor tengo un poco de prisa con la respuesta
 
he hecho la siguiente consulta en el evente change de un edit
query1.SQL.text:='SELECT * FROM proveedores WHERE Proveedor like ' + QuotedStr(Edit1.Text + '%');

para que me vaya buscando los proveedores conforme se vaya escribiendo pero desde la primera letra no sale nada, ¿tengo algo mal puesto?

Casimiro Noteví 11-07-2005 13:05:35

acabo de hacer una prueba con ese mismo código y funciona correctamente, ¿qué resultados te dan a tí?

Casimiro Noteví 11-07-2005 13:06:43

se me olvidaba, imagino que después de cada cambio en el edit de búsqueda volverás a ejecutar el query, no?

ElDioni 11-07-2005 13:17:48

es el mismo codigo
 
en el change del edit tengo esto
if edit1.text<>'' then
begin
(*Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add ('Select *');
Query1.SQL.Add ('FROM proveedores');
Query1.SQL.Add ('WHERE Proveedor Like '+QuotedStr(Edit1.Text+'%'));
Query1.Open;*)
query1.SQL.text:='SELECT * FROM proveedores WHERE Proveedor like ' + QuotedStr(Edit1.Text + '%');
end
else
begin
query1.SQL.text:='SELECT * FROM proveedores'
end;

y no me funciona, no me busca nada, el grid al que esta enganchado el query se queda vacio

Casimiro Noteví 11-07-2005 13:45:54

Código Delphi [-]
 if edit1.text<>'' then
    begin
   Query1.Close;
   query1.SQL.text:='SELECT * FROM proveedores     WHERE  Proveedor like ' + QuotedStr(Edit1.Text + '%');
 end
  else
           query1.SQL.text:='SELECT * FROM proveedores'
    end;
 Query1.Open;

Casimiro Noteví 11-07-2005 15:19:02

Código Delphi [-]
 Query1.Close;
  if edit1.text<>'' then
      query1.SQL.text:='SELECT * FROM proveedores WHERE Proveedor like ' + QuotedStr(Edit1.Text + '%')
  else
      query1.SQL.text:='SELECT * FROM proveedores';  
  Query1.Open;

jachguate 11-07-2005 17:24:01

Además de abrir el query, es probable que no te funcione como esperas debido a que regularmente la búsqueda es sensible a mayúsculas y minúsculas. Si ese es tu caso, una forma fácil de evitarlo es convirtiendo todo a mayúsculas:

Código Delphi [-]
Query1.Close;
  if edit1.text<>'' then
      query1.SQL.text:='SELECT * FROM proveedores WHERE upper(Proveedor) like upper(' + QuotedStr(Edit1.Text + '%') + ')';
  else
      query1.SQL.text:='SELECT * FROM proveedores';  
  Query1.Open;

Hasta luego.

;)

delphi.com.ar 11-07-2005 17:46:40

Vale aclarar que no todos los Motores/Bases de datos utilizan como comodín el %, por ejemplo en la Base de Datos Access, el comodín es *

Saludos!

jachguate 11-07-2005 17:57:25

Cita:

Empezado por delphi.com.ar
Vale aclarar que no todos los Motores/Bases de datos utilizan como comodín el %, por ejemplo en la Base de Datos Access, el comodín es *

Claro, siempre olvido que hay pseudo-motores que no se apegan a lo mas mínimo del estándar :D :rolleyes:

pache 13-07-2005 18:49:07

Otra variante, para que no uses el UPPER combinado con el LIKE, es que utilices el STARTING WITH


La franja horaria es GMT +2. Ahora son las 10:09:24.

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