Apertura de tablas
Distingue archivo, alias, área de trabajo y RDD.
Descripción general
Abrir tabla vincula fuente de datos a área de trabajo identificada por alias. El alias difiere del nombre físico; la RDD determina acceso. DBUseArea permite área nueva, driver, origen, alias y modos compartido y solo lectura. Primer argumento .F. o Nil puede cerrar tabla del área actual; usar .T. y alias único para apertura independiente. Rutas se resuelven en servidor, no en SmartClient. El índice Framework Abertura de Tabelas relaciona OpenSm0/OpenSM0Excl, no contrato genérico DBUseArea. (Refs. 1–2)
Ejemplo comentado
#Include "Protheus.ch"
User Function EdAbre(cArchivo)
Local aArea := GetArea()
Local cAlias := GetNextAlias()
// Recibir ruta autorizada de un DBF de prueba en servidor.
If ValType(cArchivo) <> "C"
Return .F.
EndIf
If Empty(cArchivo)
Return .F.
EndIf
DBUseArea(.T., "DBFCDX", cArchivo, cAlias, .T., .T.)
// Cierra solo area creada por esta funcion.
If Select(cAlias) > 0
(cAlias)->(DbCloseArea())
EndIf
RestArea(aArea)
Return .T.Demuestra apertura compartida y solo lectura, seguida del cierre propio en flujo normal. No trata excepciones de archivo, driver o permisos; .T. del wrapper no sustituye diagnóstico de error. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
- No reabrir ni cerrar aliases del llamador. Modo compartido puede fallar si otro proceso tiene acceso exclusivo. En producción garantizar limpieza y restauración también ante errores.
- En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.