![]() |
Problemas Con Locate
Existe alguna forma de evitar el uso de locate y locatenext en interbase?, tengo una tabla llamada creditos, que tiene como campos clave año(integer) y codigo(varchar), las tabla tiene alrededor de 900 registros y a la hora de buscar un registro por su cualquier campo demora demasiado, tengo demas en la tabla un campo Calculado (COMPUTED BY) que me une los dos campos claves en uno Año-Codigo,
Existira alguna forma de seleccionar el registro que busco con una sentencia SELECT? |
Cita:
// Saludos |
select * from mitabla where campo = valor
a eso te refieres, parece que es muy elemental la pregunta y se hubiera solucionado con un poco de investigacion |
Se utilizar las sentencias SQL SELECT, lo que queria decir es si hay algunas forma de uan vez Ejecutada una SENTENCIA SQL del tipo SELECT * FROM TABLA
sera posible utilizar otro SELECT para posicionarse en un registro especifico, sin filtrar la tabla, al estilo de LOCATE? |
Me parece que tu error es de concepto.
Dices que tu tabla tiene 900 registros, que son muy pocos por cierto, y que te tarda al hacer un locate y al contestarte que lo hagas con SQL dices que ya tomas los datos con SQL y luego buscas con locate; por lo cual entiendo que adquieres todos los registros y luego buscas: ahí esta el error. Si traes toda la tabla, ¿para que necesitas hacer eso?. Me explico. Para mi el método correcto es elegir de entrada mediante SQL extrictamente los datos que se necesitan y nada más. SI necesitas un registro, será ese el que pidas. Si se pide un conjunto de registros (dataset), casi siempre es debido a que se necesitan para mostrar al usuario en un control tipo Grid tras haberse realizado una busqueda con criterios concretos. Aquí no tiene sentido mostrar más de 150 registros en el Grid, sería muy pesado de manejar para el usuario, si esto ocurre es conveniente informarle para que pueda hacer una búsqueda más definida. Cuando los registros esten el el grid será el usuario el que mueva el cursor local a traves de ellos para luego hacer las operaciones que desee así que practicamente nunca va a tener que localizar tu programa los registros. Sobre lo que preguntas es posible poner filtros a los dataset y otros métodos pero pienso que lo que te comento es mejor, acabas con el problema, no tiene que utilizar locate ni ninguna cosa similar y tu programa ira mejor. Además creo que así está mejor diseñado para una futura expansión, como el crecimiento de la base de datos o la puesta en marcha o crecimiento en una red. |
La franja horaria es GMT +2. Ahora son las 12:53:36. |
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