¿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...

1 Respuesta

Respuesta
1
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í.

Añade tu respuesta

Haz clic para o