Antes que nada gracias por su ayuda.
Espero que me puedan dar una mano, ya que no conozco mucho sobre VFP.
La razón por la que escribo es para consultar sobre dos dudas que tengo:
1) ¿Como se recupera el valor auto-incremenal de una columna una vez insertado?
La tabla es cuestión tiene una columna código, la cual es de tipo entero y auto-incremental, fue creada con VFP9.
Genero el insert, todo correcto, se genera automáticamente el nuevo código, pero desconozco como recuperarlo. Estoy buscando algo así como el scope_identity o @@identity de SQL server.
Una solución es hacer MAX de "campo" con un select, pero nada me garantiza que dado la concurrencia no este leyendo otro insert mas nuevo, que el que acabo de ejecutar contra la tabla.
2) En las bases que fueron creadas con VFP6, como se genera el campo incremental, se que en esta versión no se encuentra soportado dicha característica.
Por lo que puede averiguar es algo como "SELECT NVL(MAX(Campo), 0) + 1 FROM Tabla" el problema sigue siendo la concurrencia, entre que calculo el próximo valor y lo inserto.
Como información adicional, estas bases las consumo desde una web con C#, por lo que a los DBF estoy accediendo mediante OLE DB (Son tablas DBF sueltas no tiene DBC).
Tengo acceso al SQL y a algunas de las funciones propias de Fox.
En el caso puntual del segundo punto, intente usar LOCK y FLOCK que están soportadas por OLE DB, pero siempre me devuelve falso y no logro generar el bloqueo a la tabla (Soy el único que la esta usando y no esta bloqueada por otra aplicación/usuario).
Como no tengo experiencia manejando este tipo de base de datos, desconozco estos temas por lo que consulto con ustedes que de seguro están mas cancheros que yo.
Muchas gracias por su tiempo y ayuda.