¿Cómo puedo recorrer los registros de una tabla .dbf para actualizar los valores con Visual Fox Pro?
Soy nueva en esto por eso solicito su ayuda, tengo una tabla x.dbf esta tabla me guarda una información que necesito por empleado, esta tabla necesito recorrerla y buscar cada registro en mi tabla y.dbf en el caso de que exista dicho registro debo actualizarlo y en el caso de que no exista el registro necesito insertarlo. Alguien me podría dar unas pautas...
Espero poder ayudarte.. Primero vamos a ponerle nombre a tus tablas, por ejemplo tabla1, tabla2 así te puedo explicar mejor.. Cuando necesitas buscar en una tabla un registro, debes crear un índice. Suponiendo que el dato que buscas es el "codigo" en la tabla2 hace así.. Se le tabla2 Index on codigo to tabla2Cod Esto creará un indice, en la tabla2 para que puedas buscar "codigos". Siempre que uses la tabla, deberás tener el indice abierto, para que funcione y para fundamentalmente que actualice.. Entonces.. siempre que abras la tabla haces. Use tabla2 index tabla2Cod Ese indice, es un archivo físico dentro de la computadora así que tiene ruta de acceso entonces, cuando generar el indice (con index) o lo abrir (con use) tené en cuenta la referencia a la ubicación.. que siempre conviene que sea donde esta la tabla.. algo así por ejemplo: sele tabla2 (suponiendo que tabla2 esta en c:\tablas\) index on codigo to c:\tablas\tabla2Cod y cuando abris haces: use c:\tablas\tabla2 index c:\tabas\tabla2Cod.. Si todo anda bien, el index se hace una vez sola para siempre. No hace falta indexar cada vez que se necesite buscar.. Bueno, ¿cómo haríamos para hacer lo que necesitas? Usamos la función seek() el comando scan para hacer el siguiente programita, suponiendo que la tabla ya esta indexada por el dato que necesitas buscar.. Se le tabla1 Scan all Se le tabla2 if !seek(tabla1.campo,'tabla2','tabla2Cod') Append blank Endif if rlock() &&esto es por si trabajar multiusuario replace codigo with tabla1.codigo replace descrip with tabla1.descrip Replace ... Unlock Endif Se le tabla1 Endscan Bueno, espero que te sirva la respuesta y si es así.