FUNCTION CONSULTA( taDatos, tnCantRegs )
USE MiTabla AGAIN SHARED NOUPDATE ALIAS "__MiAlias" && El doble guión bajo lo uso para aperturas temporales
SELECT * FROM __MiAlias WHERE LaCondicion INTO ARRAY taDatos
tnCantRegs = _TALLY
USE IN (SELECT("__MiAlias"))
RETURN
--
Has recibido este mensaje porque estás suscrito al grupo "Aprenda Visual Foxpro" de Grupos de Google.
Visita este grupo en http://groups.google.com/group/aprendavfp.
Principalmente lo uso así porque sirve para un SCAN o LOCATE o lo que sea que requiera estar ubicado en la tabla, y unUSE <tabla> IN 0 no te garantiza eso, sino que se va a abrir "en otra área" que normalmente no es la actual.
Fijate que algunos hacen USE <tabla> IN 0 y a continuación hacen SELECT <tabla>, lo cuál no es óptimo, porque se está indicando abrir la tabla "en un área nueva" que no me interesa para luego ir y buscar esa área.
Además es una buena práctica, ya que si da la casualidad de que estás parado en el EOF() de una tabla y hacés una búsqueda en otra, puede no encontrarte el valor aunque exista (no recuerdo que comandos pueden fallar estando en EOF ajeno). En cambio, estando en el área de la tabla, si el valor existe lo encuentra siempre, aunque esté en EOF.
Por lo anterior, esto:
select 0
use tabla
es más óptimo que esto:
use tabla in 0
select tabla
Es algo más para tener en cuenta..
--
Has recibido este mensaje porque estás suscrito al grupo "Visual Foxpro Latinoamérica" de Grupos de Google.
Visita este grupo en http://groups.google.com/group/vfplatino.
--
Has recibido este mensaje porque estás suscrito al grupo "Visual Foxpro Latinoamérica" de Grupos de Google.
Visita este grupo en http://groups.google.com/group/vfplatino.
No pasa nada Hernán, para eso estamos, para ayudarnos y refrescar conocimientos :-)
Un abrazo!
--
Has recibido este mensaje porque estás suscrito al grupo "Visual Foxpro Latinoamérica" de Grupos de Google.
Visita este grupo en http://groups.google.com/group/vfplatino.
Lo crítico depende del nivel de complejidad de la aplicación o del método en FoxPro.
Por ejemplo, haciendo que un objeto padre guarde una referencia del hijo y viceversa, y luego intentar dejar que se limpien las referencias solas al liberar un solo de los objetos, después de varias iteraciones causa el error C0000005
Y así como este hay varios casos más, incluso no hacer esta recolección de forma ordenada hasta puede causar comportamientos raros. Hay varias consultas en los foros por estos motivos.