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
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.