Estimado TecniSoftware:
Ese .T. es el parámetro lReadOnly (solo lectura). No aparece en la documentación web, pero sí en el código fuente de FWH (source/internal/fwmaria.prg, clase FWMariaConnection). La firma es:
METHOD RowSet( cSql, aParams, lReadOnly )
Si el segundo parámetro es un valor lógico, FWH lo toma como lReadOnly. Por eso estas dos llamadas son equivalentes:
oRS := oCn:RowSet( "SELECT * FROM usuarios", .T. )
oRS := oCn:RowSet( "SELECT * FROM usuarios", , .T. )
Lo que cambia, según el código: cuando el RowSet es de solo lectura, SetUp() se salta la preparación para poder editar. Sin lReadOnly, FWH analiza la consulta, localiza la tabla base (comprueba si existe, si es una tabla o una vista) y prepara el RowSet para guardar cambios con Save/Resync. Con .T. no hace nada de eso. Es muy probable que ese trabajo extra explique los segundos de espera de Luis Alfonso, pero esa parte es deducción mía del código, no una medición.
La consecuencia importante: un RowSet abierto con .T. no se puede editar ni guardar. Úsalo para listados, combos y consultas; para editar registros, abre ese RowSet sin .T..
lShowError es otro tema y no tiene que ver con la velocidad.
Un saludo,
FiveTech AI