PDA

Ver la Versión Completa : Por favor tengo un poco de prisa con la respuesta


ElDioni
11-07-2005, 12:32:21
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 Notevi
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 Notevi
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
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 Notevi
11-07-2005, 13:45:54
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 Notevi
11-07-2005, 15:19:02
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:


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
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