Usina BRGuía AdvPL
Ingresar
← Todos los temas
GUíA PRáCTICAEn revisión

Apertura, navegación y cierre de tablas DBF/TopConn

Organiza ciclo de vida de áreas propias en DBF y consultas TopConn.

Apertura, navegación y cierre de tablas DBF/TopConnAdvPL
01 · DESCRIPCIÓN GENERAL

Descripción general

Preparar entorno de pruebas y definir responsabilidad por cada alias. Para DBF, indicar archivo autorizado del servidor y RDD compatible, abrir área nueva solo lectura, posicionar DbGoTop, recorrer mientras !Eof y cerrar solo alias creado. Para SQL por TopConn, DBUseArea recibe TCGenQry como origen y requiere conexión disponible. Recorrer hacia adelante sin suponer soporte de DbGoTop ni DbSkip negativo. El ejemplo cuenta clientes activos del alcance devuelto por xFilial sin exponer registros individuales; SQL explícita no hereda automáticamente todas las reglas de acceso. Verificar alcance y permisos. (Refs. 1–3) xFilial respeta uso compartido SX2: el alcance puede abarcar varias sucursales. RetSqlName resuelve nombre físico; ChangeQuery adapta SQL y TCSetField define tipo numérico QTDE. Requiere área original válida para GetArea/RestArea. (Refs. 4–5)

03 · EJEMPLO PRÁCTICO

Ejemplo comentado

#Include "Protheus.ch"
#Include "TopConn.ch"

User Function EdConsulta()
    Local aArea := GetArea()
    Local cAlias := GetNextAlias()
    Local cSucursal := StrTran(xFilial("SA1"), "'", "''")
    Local cSql := "SELECT COUNT(*) AS QTDE FROM " + RetSqlName("SA1") + ;
        " WHERE D_E_L_E_T_ = ' ' AND A1_FILIAL = '" + cSucursal + "'"
    // Entorno Protheus conectado; SELECT limitado a conteo.
    cSql := ChangeQuery(cSql)
    DBUseArea(.T., "TOPCONN", TCGenQry(Nil, Nil, cSql), cAlias, .T., .T.)
    TCSetField(cAlias, "QTDE", "N", 18, 0)
    While !(cAlias)->(Eof())
        ConOut(cValToChar((cAlias)->QTDE))
        (cAlias)->(DbSkip())
    EndDo
    (cAlias)->(DbCloseArea())
    RestArea(aArea)
Return Nil
Resultado esperado

Propuesta: conteo, cierre del cursor propio y restauración del área original en flujo normal. Para DBF aplicar secuencia descrita a copia de prueba. Fallos de conexión y limpieza excepcional requieren tratamiento del proyecto. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

BUENAS PRÁCTICAS
  • Verificación: probar tabla vacía, permiso denegado, alias ocupado y error SQL; comprobar limpieza y restauración en todos los caminos. No usar DbCloseAll ni transacciones de escritura para demostrar lectura.
  • En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Contenido relacionado

REFERENCIAS
  1. TOTVS. DBUseArea. TOTVSTEC/TDN. Consulta el 2026-10-25.
  2. TOTVS. TCGenQry. TOTVSTEC/TDN. Consulta el 2026-10-25.
  3. TOTVS. DBSkip. TOTVSTEC/TDN. Consulta el 2026-10-25.
  4. TOTVS. XFILIAL(). Frameworksp/TDN. Consulta el 2026-10-25.
  5. TOTVS. Desenvolvendo queries no Protheus. Frameworksp/TDN. Consulta el 2026-10-25.
Estado
En revisión
Página creada el
Última revisión el
Idioma original
Portugués
Revisión
Usina.BR
0 comentario(s) aprobado(s)

Comentarios

Todavía no hay comentarios aprobados.

Inicia sesión con Google o Microsoft para comentar.

Desarrollado con Usina Docs · Alpha