Delphi - buscador rapido

 
Vista:

buscador rapido

Publicado por Antonio (75 intervenciones) el 16/12/2005 15:18:41
necesito un buscador mas rapido para una base de datos con folio, tengo este pero no es muy rapido por que busca de uno en uno, si alguien sabe uno mas rapido se lo agradesco.

procedure TForm3.BitBtn3Click(Sender: TObject);
var i:integer;
begin
table2.Last;
for i:=1 to table2.RecordCount do
begin
if table2.FieldByName('Folio').asstring=edit1.Text then
begin
showmessage('SI ESTA en esta Lista');
exit;
end;
table2.Prior;
end;
showmessage('NO EXISTE en esta Lista');

end;

me es muy lento... tarda mucho en buscar...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:buscador rapido

Publicado por Virum (484 intervenciones) el 16/12/2005 17:15:36
Hola:

Algo más rápido puede ser con Locate

DataSet.Locate('CAMPOBUSCADO, Edit1.text,[loCaseInsensitive,loPartialKey]);
o
DataSet.Locate('CAMPOBUSCADO, Edit1.text,[]);

aunque si la tabla tiene muchos registros lo que debes es usar una sentencia SQL

'select * from TUTABLA where CAMPOBUSCADO = '+QuotedStr(Edit1.text);

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscador rapido

Publicado por Delfino (1216 intervenciones) el 16/12/2005 18:14:36
locate es mas rapido solo en el caso de la busqueda con un campo indexado, de lo contrario locate es mas lento, mire su codigo..
amgp asi te sera mas rapido :
dataset.disablecontrols;
while not dataset.eof do
begin
if cadena = campo.asstring then ...
dataset.next;
end;
dataset.enablecontrols;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:buscador rapido

Publicado por BigLuis (713 intervenciones) el 16/12/2005 18:58:29
Yo me inclino por la opcion de la consulta SQL. Pienso que es mucho mas rapida y mas aun si se emplean parametros en vez de igualar un campo a una variable. Con el empleo de parametros, el servidor de BD ya la tiene "como preparada" y su ejecucion es mas rapida. Lo he leido en alguna parte.
El caso es llevaros la contraria (Virum y Delfino).
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar