![]() |
Uso de sql en vez de locate
Buenas tardes a todos.
Alguna vez he os realizado alguna consulta sobre el metodo locate y siempre me habeis dicho que si el volumen de datos a procesar era importante, este ralentizaba bastante el tiempo de proceso, cosa que he comprobado en mis propias carnes (o datos), tambien me habeis sugerido que use una consulta sql para localizar el registro buscado y asi agilizar el proceso. En el siguiente código, uso un form para buscar un registro y luego locate para localizarlo en la tabla general y presentarlo en el formulario correspondiente. He estado dando vueltas en como poder implementar la busqueda por sql pero no doy en el clavo, lanzar la consulta y mostrar el resultado en el formulario.
Perdonad si la consulta resulta banal, pero no veo más allá de mis narices y no me aclaro de como hacerlo, con lo que si alguien me echa un cable pues estaré le eternamente agradecido. Saludos a todos Josep |
Hola Josep.
Una consulta, ¿ Que tipo de componente es F_ModulDades.Camions ? Saludos. |
Gracias Ecfisa.
El componente Camions es un IBDataset de firebird que contiene aproximadamente mil quinientos registros. Saludos |
Cita:
Algo similar a esto:
Saludos :) |
Hola de nuevo Josep.
Me quedé pensando en que tal vez te resulte mas simple encapsular la acción en F_Camions:
Llamada desde TF_Parcs: El problema de usar un solo IBDataSet, es que todos los componentes asociados a Camions quedarán restringidos a la última consulta. En ese caso una solución es usar oto TIBDataSet (o TIBQuery) para realizar el posicionamiento en F_Camiones. Saludos.:) |
Gracias de nuevo Ecfisa.
He probado con el primer ejemplo que me pusiste y el resultado es que siempre me manda al primer registro de la tabla. En cuanto al segundo, lo estoy estudiando más detenidamente ya que no acabo de entender exactamente donde se debe colocar el código propuesto. Tambien hablas de una segunda consulta de localización del registro, esta ya está en el formulario y es BurcarCamio, igual así se puede mejorar algo. Cuando llegue a casa por la noche lo vuelvo a mirar con calma. Saludos Josep |
Cita:
El registro que se selecciona queda determinado por el valor de Camions_ParcID en la línea: Es decir que que Camions se posicionará en el registro cuyo valor ID sea igual al valor que enviemos mediante ParamByName('PID').AsInteger a la consulta. Por ejemplo: Posiciona a Camions en el registro cuyo campo de ID tiene 1251 como valor. Saludos.:) |
La franja horaria es GMT +2. Ahora son las 11:32:55. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi