Pregunta: | 478 - FILTRAR BD EN CLIPPER |
Autor: | Mauro |
Necesito filtrar datos de una Base de Datos DBF en Clipper que me origine una nueva Base de Datos. El filtro se realiza sobre el campo fecha, ingresando la fecha por teclado. Lo he intentado de muchas formas y lo unico que me filtra el el primer registro que cumple con la condicion ... Gracias de antemano a quien me pueda ayudar !! |
Respuesta: | Angel Blanco |
Recomiendo que no utilicen la instrucción set filter to, ya que pone el sistema Mucho más lento, es preferible elaborar un indice temporal para cada usuario con la clausula 'FOR', Por supuesto, si vas a actualizar algún dato debes tener los otros indices invocados.
DIRTMP:='C:\WINDOWS\' SELECT(ARCHIVO) INDEX ON [CLAUSULA] TO &DIRTMP.TEMPORAL FOR [FILTRO] SET INDEX TO &DIRTMP.TEMPORAL GO TOP * VOALA! YA TIENES TU FILTRO Y CON MEJOR TIEMPO DE ACCESO IF FILE(NUEVA_BASE) DELFILE(NUEVA_BASE) ENDIF COPY TO NUEVA_BASE *TAMBIEN LO PUEDES HACER DE LA FORMA ANTÍGUA USE ARCHIVO INDEX INDICES SHARED NEW COPY STRU TO NUEVA_BASE CLOSE USE NUEVA_BASE EXCLUSIVE NEW APPEND FROM ARCHIVO FOR CONDICION |
Respuesta: | Eduardo Lopez |
Te voy a dar una clave, los codigo que te pasan son exactos, todos estan correctos pero te cuento que para que sea mas rapido el filtro NO debes de usar los indices, Clipper o Dbase cuando haces un filtro trabaja muchisimo mas rapido sin el uso de indices. |
Respuesta: | Pablo Alberto Vidal |
Solo tienes que usar un DbGotop() despues que filtars el archivo y listo. eso es todo... suerte.. Pablo Alberto Vidal. Desde La Vega, Republica Dominicana |
Respuesta: | Arturito |
Como ya se menciono tienes que irte al inicio de la base de datos te pongo un ejemplo:declarando bases de datos |
Respuesta: | juan M. Feria |
LOCAL fFecha:= CTOD(´´)SELECT 0 @ 10,10 SAY "FECHA A FILTRAR" SELECT ORIGEN |
Respuesta: | Christian |
set century on |
Respuesta: | Arteaga |
No se si aun este en tiempo de ofrecerte una respuesta pero si tu problema es con el despliegue de datos por pantalla tal vez sea conveniente utilizar el TBrowse() con algunas condiciones de control. De ser así cuento con algunas funciones que puedo compartir (igual comparto desarrollo en FiveWin). |