PDA

Ver la Versión Completa : Buscar por un campo


robero espinoza
01-10-2003, 19:04:43
Hola a todos espero esten bien.

Tengo un problema en una patalla estoy utilizando un TDBNavigator en una de mis pantallas, aqui utiliza varias tablas cuando le doy next con el TDBNavigator se posiciona al siguiente campo pero por medio de unas Tquerys, jalo otra informacion el problema es que la base de datos a hido creciendo en tonces para buscar un campo con el TDBNavigator tengo que ir de uno por uno hasta buscar el registro estaba utilizando el siguiente codigo:

dbnremision.DataSource.DataSet.First;
while nofactura.text<>busca.text do
begin
dbnremision.DataSource.DataSet.Next;
end;

al principio si me servia pero ahora ya es demaciado tardado, entonces estoy buscando la forma de hacerlo mas funcional y mas rapido, nose de que manera lo pueda hacer, si me pueden ayudar se los agradecere, muchas gracias espero me entiendan.
Saludos y que esten bien..

delphi.com.ar
01-10-2003, 19:20:08
Primero, quiero recomendarte leer la Guía de Estilo (http://www.clubdelphi.com/users/llsoft/Docs/GuiaEstilo.php).
Como segundo, te puedo recomendar investigar el método Locate de los DataSet:
DataSet.Locate('NRO_FACTURA', busca.text, [loCaseInsensitive]);


Zaludoz!

sanxpue
01-10-2003, 19:21:15
Si que haces un recorrido total a toda la tabla.. y eso obvio que se va a tardar mas... weno si es la primera no pero si es la ultima si...

si estas usando paradox te recomiendo que uses findkey y si estas usando interbase te recomiendo locate

if tabla.findkey([texto_a_buscar]) Then

o

If tabla.Locate('campo_debusqueda',texto_a_buscar,[]) Then

con el finkey va a buscar en el indice que tengas la tabla si el indice es vacio entonces es el primario y con locate solo le dices sobre que campo-...