20 de julio de 2020

ExecScript()

La nueva función ExecScript() en VFP 7.0 permite que usted ejecute una secuencia de código "al vuelo".

El ejemplo de abajo también hace uso de la nueva sintaxis TEXT TO para crear la cadena de comandos.

Simule esto es su código PRG o método:

*
* código normal del PRG o método aquí ...
* 

*
* cree una cadena de comandos "al vuelo" 
*
TEXT TO lcCode NOSHOW
LOCAL lcOutput,xx
lcOutput = SPACE(0)
FOR xx = 1 to 10
  lcOutput = lcOutput + ;
  "Line " + TRANSFORM(xx) + ;
  CHR(13) + CHR(10)
ENDFOR
RETURN lcOutput
ENDTEXT
*
* ejecute los comandos aquí 
*
LOCAL lcRetVal
lcRetVal = EXECSCRIPT(lcCode)
*
* continúe ejecutando el PRG o método... 
* 

Solamente tenga cuidado que ExecScript() es relativamente lento.

VFP Tips & Tricks - Drew Speedie

9 de julio de 2020

NULL en archivos CDX

NULL en archivos CDX

Artículo original: NULL in CDX files
http://www.foxpert.com/knowlbits_200708_4.htm
Autor: Christof Wollenhaupt
Traducido por: Ana María Bisbé York


VFP no guarda NULL en el campo. En su lugar, utiliza un campo oculto llamado _NULLFLAGS. Puede que usted se pregunte (bueno, yo no lo hice; pero puede que usted si) sobre cómo VFP puede crear un índice en una columna que contenga NULL, si NULL no se almacena como tal en el campo. La respuesta en realidad es muy sencilla. Un campo que contenga NULL, se guarda como una cadena vacía. Para distinguir valores NULL de campos que en verdad están vacíos, VFP agrega un guión bajo antes de cualquier dato que exista en el campo. Por tanto, en Northwind\Customers.CDX el índice sobre las ciudades contiene "_PARIS" en lugar de "PARIS"

¿Se da cuenta del efecto que esto provoca? Debido al carácter extra que agrega VFP, una expresión de índice sobre un campo NULL puede ser solamente de 239/119 caracteres de largo, en lugar de 240/120 que admiten los campos regulares.