RE:Barra de progreso durante una consulta
Verdaderamente, no hay manera de obtener estos datos sin ejecutar minimo consultas.
A diferencia de los lenguajes XBase (como FoxPro) que tienen el concepto de registro, SQL no usa esto. Quiere decir, que cuando tu haces SELECT * FROM Tabla el Sql no informa cuantos registros va a traer ni en cual va (esto es por razones de rendimiento: Imagina obtener 1.000.000 de registros a travez de una red...si has trabajado lenguajes XBase en red y varios usuarios sabes lo lento que se vuelve esto, mas que con Sql Server o Oracle).
Podrias ejecutar antes una consulta de conteo, como SELECT Count(*) FROM MiTabla para averiguar cuantos hay, y codificar los eventos "Fetch2 (Obtencion). Se que se puede con BDE y ADO, pero no lo he hecho antes y no te podria explicar los pasos especificos.
Sin embargo, esto no es muy optimo que digamos, asi que en estos casos seria mejor desplegar un mensaje de espera animado, con un texto similar a "Espere un momento por favor...", o mejor aun, limitar la consulta o optimizarla mas.
Para que la necesitas? Si es para editar registros, no tiene sentido cargar los cientos de registros si el usuario a duras penas modifica unos cuantos.... Puedes utilizar el concepto de "Proxie", esto es, haces una consulta con los datos de identificacion (lo que permitiria ubicar el registro a un usuario) como Codigo y Nombre,+ el Id de la tabla, y cuando el usuario seleccione el registro, hacer otra consulta por ese registro unicamente.
Si es para un reporte (lo que implica que normalmente si se pueden solicitar todos los datos) podrias habilitar la opcion de filtrar la informacion (entre fechas, rangos, tipos, etc..) para que el usuario especifique que t