Consultas

Solo disponible en BuenasTareas
  • Páginas : 20 (4754 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de octubre de 2010
Leer documento completo
Vista previa del texto
La grandeza de VFP 9 viene en paquetes pequeños
(4742 palabras totales en este texto)
(9596 lecturas)  [pic]
La grandeza de VFP 9 viene en paquetes pequeños
Artículo original: Big VFP 9 thingd come in small package
Autor: Drew Speedie (fallecido)
Traducido por: Ana María Bisbé York (amby@telefonica.net)
Para: PortalFox (http://www.portalfox.com)
[pic]
Nota de la traductora
Este textocorresponde a la sesión que fue preparada por el MS VFP MVP Drew Speedie para la Conferencia Southwest Fox 2005. Pocos meses antes de la conferencia, Drew Speedie falleció; pero su trabajo fue presentado por otro de los grandes de la comunidad VFP, el también MS VFP MVP, Andy Kramek.
Deseamos agradecer a Andy Kramek y Russ Swall de Vision Pace, donde trabajaba Drew Speedie, por la posibilidad quenos han brindado de distribuir la obra de Drew y que todos sigamos aprendiendo de el. Sirva este trabajo de traducción como homenaje de recordación a Drew Speedie. ¡Gracias Drew!
Resumen
Cada nueva versión de cualquier software contiene siempre varias "pequeñas" mejoras que no reciben mucha publicidad. Estos pequeños avances no merecen un tema para una hora de sesión en conferencias dedesarrolladores. Sin embargo, si se agrupan todos juntos, comprenden una parte significativa de lo que vamos a utilizar a diario en el desarrollo de nuestras aplicaciones VFP 9.
Código de ejemplo
Los archivos con código de ejemplo para esta presentación consta de un único archivo EXAMPLES.APP. Ejecute DO EXAMPLES, y el código de ejemplo para todos estos elementos se copiará en su disco en la misma carpetaque EXAMPLES.APP al seleccionar alguno de los botones Source (Código fuente) o Run (Ejecutar)
Palabra clave ADDITIVE para el comando SET PATH
Agregar nuevas rutas al SET PATH actual ha sido siempre una tarea tediosa en VFP, típicamente lo hacíamos así:
LOCAL lcPath
lcPath = SET("PATH") + ";C:\Projects\MyApp\Data"
SET PATH TO &lcPath
En VFP 9, el comando SET PATH se ha mejorado para soportarla palabra clave ADDITIVE, por lo que se reduce a lo siguiente:
SET PATH TO "C:\Projects\MyApp\Data" ADDITIVE
Todo lo que aparece a continuación funciona en VFP 9 para agregar una ruta por programa:
LOCAL lcDataPath
lcDataPath = "C:\Projects\MyApp\Data"
SET PATH TO (m.lcDataPath) ADDITIVE
LOCAL lcDataPath
lcDataPath = ["C:\Projects\MyApp\Data"]
SET PATH TO &lcDataPath ADDITIVE
LOCALlcDataPath
lcDataPath = "C:\Projects\MyApp\Data"
SET PATH TO "&lcDataPath" ADDITIVE
Cuando utiliza macrosustitución, se requiere el conjunto extra de delimitadores, debido a que en versiones anteriores ha podido asignar a SET PATH una carpeta llamada \ADDITIVE:
SET PATH TO ADDITIVE
SELECT … WITH (BUFFERING = .T.)
VFP 9 tiene muchas mejoras. Una de los que podría utilizar frecuentemente es lacláusula nueva WITH (Buffering = ).
Antes de VFP 9, cuando el cursor (tabla, vista, etc) era guardado en buffer, la sentencia SELECT SQL siempre recibía los registros del disco. Los registros almacenados en buffer eran siempre ignorados, de tal forma que tenía que buscar otras vías para recibir los registros desde el cursor en buffer.
Esta mejora permite especificar si la sentencia SELECT va autilizar los registros en buffer o los registros en disco; solamente añadiendo una cláusula WITH (Buffering = .T.) después de cada tabla deseada en la cláusula FROM ya el SELECT recibe los registros en buffer en lugar de los registros en disco.
Por ejemplo, he estado utilizando esta nueva cláusula para simplificar el código que recibía un registro de un cursor de tabla en buffer, para verificar algúnvalor. El código antiguo tenía este aspecto:
LOCAL lnRecno, lnSelect, lnValue
lnSelect = SELECT(0)
lnRecno = IIF(EOF(),0,RECNO())
SELECT TargetCursor
LOCATE FOR
lnValue =
IF m.lnRecno = 0
GO BOTTOM
IF NOT EOF()
SKIP
ENDIF
ELSE
GOTO (m.lnRecno)
ENDIF
SELECT (m.lnSelect)
...el código nuevo es este:
LOCAL lnValue
SELECT * FROM TargetCursor ;
WITH (BUFFERING=.T.)...
tracking img