2002-06-06 09:23 UTC+0300 Chen Kedem <niki@actcom.co.il>
This commit is contained in:
@@ -8,6 +8,18 @@
|
||||
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2002-06-06 09:23 UTC+0300 Chen Kedem <niki@actcom.co.il>
|
||||
* doc/dirstruc.txt
|
||||
+ Add notes for the btree directory
|
||||
|
||||
* doc/gmake.txt
|
||||
* doc/transfrm.txt
|
||||
* doc/es/dbstrux.txt
|
||||
* doc/es/harbext.txt
|
||||
* doc/es/idle.txt
|
||||
* doc/es/tracing.txt
|
||||
! Replace embedded TABs with SPACEs
|
||||
|
||||
2002-06-05 20:52 UTC-0800 Ron Pinkas <ron@ronpinkas.com>
|
||||
* make_b32.bat
|
||||
- Commented SET BISON_SIMPLE line as it causes incompatibility with current version of Bison.
|
||||
|
||||
@@ -46,6 +46,12 @@ in order to remove empty directories)
|
||||
| | |
|
||||
| | +---test - Test programs.
|
||||
| |
|
||||
| +---btree - BTree library.
|
||||
| | |
|
||||
| | +---doc - HB_BTree C and Harbour API documentation.
|
||||
| | |
|
||||
| | +---test - HB_BTree api test programs.
|
||||
| |
|
||||
| +---delphi - Integration with Borland Delphi.
|
||||
| | |
|
||||
| | +---hbdll - Accessing Harbour DLL from Delphi.
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* CREATE FROM, __FLEDIT(), __dbStructFilter()
|
||||
*
|
||||
* Copyright 2000 Alejandro de Gárate <alex_degarate@hotmail.com>
|
||||
* Documentación en Español de:
|
||||
* Documentación en Español de:
|
||||
* __dbCopyStruct(), COPY STRUCTURE, __dbCopyXStruct(),
|
||||
* COPY STRUCTURE EXTENDED, __dbCreate(), CREATE,
|
||||
* CREATE FROM, __FLEDIT(), __dbStructFilter()
|
||||
@@ -35,32 +35,32 @@
|
||||
* <cNombreArch> es el nombre de una nueva base de datos a crear.
|
||||
* (.dbf) es la extensión por defecto si ninguna es especificada.
|
||||
*
|
||||
* <aListaCampos> es un array donde cada elemento es un nombre de
|
||||
* <aListaCampos> es un array donde cada elemento es un nombre de
|
||||
* campo.
|
||||
* Los nombres pueden ser especificados en mayúsculas ó minúsculas.
|
||||
* $RETURNS$
|
||||
* __dbCopyStruct() siempre retorna NIL.
|
||||
* $DESCRIPTION$
|
||||
* La función __dbCopyStruct() crea una nueva base de datos vacía,
|
||||
* con una estructura que esta basada en la base de datos actualmente
|
||||
* abierta en este área de trabajo. Si <aListaCampos> esta vacía,
|
||||
* el archivo recientemente creado podría tener la misma estructura
|
||||
* que la base de datos actualmente abierta. De otro modo el nuevo
|
||||
* archivo podría contener sólo campos que coincidan exactamente
|
||||
* La función __dbCopyStruct() crea una nueva base de datos vacía,
|
||||
* con una estructura que esta basada en la base de datos actualmente
|
||||
* abierta en este área de trabajo. Si <aListaCampos> esta vacía,
|
||||
* el archivo recientemente creado podría tener la misma estructura
|
||||
* que la base de datos actualmente abierta. De otro modo el nuevo
|
||||
* archivo podría contener sólo campos que coincidan exactamente
|
||||
* con <aListaCampos>.
|
||||
*
|
||||
* __dbCopyStruct() puede ser usada para crear un subconjunto de
|
||||
* la base de datos actualmente abierta, basada en una lista dada
|
||||
* __dbCopyStruct() puede ser usada para crear un subconjunto de
|
||||
* la base de datos actualmente abierta, basada en una lista dada
|
||||
* de campos.
|
||||
*
|
||||
* El comando COPY STRUCTURE es pre-procesado en la función
|
||||
* El comando COPY STRUCTURE es pre-procesado en la función
|
||||
* __dbCopyStruct() durante el tiempo de compilación.
|
||||
* $EXAMPLES$
|
||||
* // Crea un nuevo archivo que contiene la misma estructura.
|
||||
* USE TEST
|
||||
* __dbCopyStruct( "MyCopy.DBF" )
|
||||
*
|
||||
* // Crea un nuevo archivo que contiene parte de la estructura
|
||||
* // Crea un nuevo archivo que contiene parte de la estructura
|
||||
* // original
|
||||
* LOCAL aLista
|
||||
* USE TEST
|
||||
@@ -69,10 +69,10 @@
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
* __dbCopyStruct() trabaja exactamente como la función de CA-Clipper,
|
||||
* __dbCopyStruct() trabaja exactamente como la función de CA-Clipper,
|
||||
* __dbCopyStruct().
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* Todas
|
||||
* $FILES$
|
||||
* La librería es rdd
|
||||
* $SEEALSO$
|
||||
@@ -91,26 +91,26 @@
|
||||
* $SYNTAX$
|
||||
* COPY STRUCTURE TO <xcNombreArchivo> [FIELDS <campo,...>]
|
||||
* $ARGUMENTS$
|
||||
* <b>TO <xcNombreArchivo></b> es el nombre del nuevo archivo de
|
||||
* base de datos a crear. (.dbf) es la extensión por defecto si
|
||||
* <b>TO <xcNombreArchivo></b> es el nombre del nuevo archivo de
|
||||
* base de datos a crear. (.dbf) es la extensión por defecto si
|
||||
* ninguna es dada.
|
||||
*
|
||||
* Esta puede ser especificada como un literal de nombre de archivo
|
||||
* Esta puede ser especificada como un literal de nombre de archivo
|
||||
* ó como una expresión de caracteres encerrada entre paréntesis.
|
||||
*
|
||||
* <b>FIELDS <campo,...></b> es una lista opcional de nombres de
|
||||
* campos a copiar desde la base de datos actualmente abierta en
|
||||
* el orden especificado, por defecto son todos los campos.
|
||||
* <b>FIELDS <campo,...></b> es una lista opcional de nombres de
|
||||
* campos a copiar desde la base de datos actualmente abierta en
|
||||
* el orden especificado, por defecto son todos los campos.
|
||||
* Los nombres pueden ser especificados en mayúsculas ó minúsculas.
|
||||
* $DESCRIPTION$
|
||||
* COPY STRUCTURE crea una nueva base de datos vacía con una estructura
|
||||
* que esta basada en la base de datos actualmente abierta en este
|
||||
* COPY STRUCTURE crea una nueva base de datos vacía con una estructura
|
||||
* que esta basada en la base de datos actualmente abierta en este
|
||||
* área de trabajo.
|
||||
*
|
||||
* COPY STRUCTURE puede ser usada para crear un subconjunto de la base
|
||||
* de datos actualmente abierta, basada en una lista dada de campos.
|
||||
*
|
||||
* El comando COPY STRUCTURE es pre-procesado en la función
|
||||
* El comando COPY STRUCTURE es pre-procesado en la función
|
||||
* __dbCopyStruct() durante el tiempo de compilación.
|
||||
* $EXAMPLES$
|
||||
* // Crea un nuevo archivo que contiene la misma estructura.
|
||||
@@ -123,9 +123,9 @@
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
* COPY STRUCTURE trabaja exactamente como en CA-Clipper
|
||||
* COPY STRUCTURE trabaja exactamente como en CA-Clipper
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* Todas
|
||||
* $SEEALSO$
|
||||
* COPY STRUCTURE EXTENDED,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate(),__dbStructFilter()
|
||||
* $END$
|
||||
@@ -145,12 +145,12 @@
|
||||
* <cNombreArchivo> es el nombre del archivo de definición de destino
|
||||
* a crear, (*.dbf) es la extensión por defecto si ninguna es dada.
|
||||
* $RETURNS$
|
||||
* __dbCopyXStruct() retorna (.F.) si ninguna base de datos está en
|
||||
* uso en el área actual de trabajo, (.T.) si el proceso fué exitoso,
|
||||
* ó un error en tiempo de ejecución si la operación de creación del
|
||||
* __dbCopyXStruct() retorna (.F.) si ninguna base de datos está en
|
||||
* uso en el área actual de trabajo, (.T.) si el proceso fué exitoso,
|
||||
* ó un error en tiempo de ejecución si la operación de creación del
|
||||
* archivo ha fallado.
|
||||
* $DESCRIPTION$
|
||||
* La función __dbCopyXStruct() crea una nueva base de datos llamada
|
||||
* La función __dbCopyXStruct() crea una nueva base de datos llamada
|
||||
* <cNombreArchivo> con una estructura predefinida (también llamado
|
||||
* "archivo de estructura extendida"):
|
||||
*
|
||||
@@ -163,13 +163,13 @@
|
||||
* FIELD_DEC N 3 0
|
||||
* </table>
|
||||
*
|
||||
* Cada registro en el nuevo archivo contiene información acerca de
|
||||
* un campo en el archivo original. CREATE FROM podría ser usado para
|
||||
* Cada registro en el nuevo archivo contiene información acerca de
|
||||
* un campo en el archivo original. CREATE FROM podría ser usado para
|
||||
* crear la base de datos desde el archivo de estructura extendida.
|
||||
*
|
||||
* Por razones prehistóricas de compatibilidad, los campos de
|
||||
* Por razones prehistóricas de compatibilidad, los campos de
|
||||
* caracteres mayores de 255 caracteres son tratados en una forma
|
||||
* especial al escribir parte de la longitud en el campo FIELD_DEC
|
||||
* especial al escribir parte de la longitud en el campo FIELD_DEC
|
||||
* de acuerdo a la siguiente fórmula (Esto es hecho internamente):
|
||||
*
|
||||
* <fixed>
|
||||
@@ -186,25 +186,25 @@
|
||||
* FIELD->FIELD_LEN )
|
||||
* </fixed>
|
||||
*
|
||||
* El comando COPY STRUCTURE EXTENDED es pre-procesado en la función
|
||||
* El comando COPY STRUCTURE EXTENDED es pre-procesado en la función
|
||||
* __dbCopyXStruct() durante el tiempo de compilación.
|
||||
* $EXAMPLES$
|
||||
* // Abre la base de datos, y copia su estructura a un nuevo archivo.
|
||||
* // Abre la base de datos, y copia su estructura a un nuevo archivo.
|
||||
* USE Test
|
||||
* __dbCopyXStruct( "TestEstr" )
|
||||
*
|
||||
* // Abre el nuevo archivo y lista todos sus registros
|
||||
* USE TestEstr
|
||||
* USE TestEstr
|
||||
* LIST
|
||||
*
|
||||
* $TESTS$
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
* __dbCopyXStruct() trabaja exactamente como la función de CA-Clipper,
|
||||
* __dbCopyXStruct() trabaja exactamente como la función de CA-Clipper,
|
||||
* __dbCopyXStruct().
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* Todas
|
||||
* $FILES$
|
||||
* La librería es rdd
|
||||
* $SEEALSO$
|
||||
@@ -224,13 +224,13 @@
|
||||
* COPY STRUCTURE EXTENDED TO <xcNombreArchivo>
|
||||
* $ARGUMENTS$
|
||||
* <b>TO <xcNombreArchivo></b> es el nombre del nuevo archivo de base
|
||||
* de datos a crear, (.dbf) es la extensión por defecto si ninguna
|
||||
* es dada.
|
||||
* Esta puede ser especificada como un literal de nombre de archivo
|
||||
* de datos a crear, (.dbf) es la extensión por defecto si ninguna
|
||||
* es dada.
|
||||
* Esta puede ser especificada como un literal de nombre de archivo
|
||||
* ó como una expresión de caracteres encerrada entre paréntesis.
|
||||
* $DESCRIPTION$
|
||||
* COPY STRUCTURE EXTENDED crea una nueva base de datos llamada
|
||||
* <cNombreArchivo> con una estructura predefinida (también llamada
|
||||
* COPY STRUCTURE EXTENDED crea una nueva base de datos llamada
|
||||
* <cNombreArchivo> con una estructura predefinida (también llamada
|
||||
* "archivo de estructura extendida"):
|
||||
*
|
||||
* <table>
|
||||
@@ -245,12 +245,12 @@
|
||||
* <fixed>
|
||||
*
|
||||
* Cada registro en el nuevo archivo contiene información acerca de
|
||||
* un campo en el archivo original. CREATE FROM podría ser usado para
|
||||
* un campo en el archivo original. CREATE FROM podría ser usado para
|
||||
* crear la base de datos desde el "archivo de estructura extendida".
|
||||
*
|
||||
* Por razones prehistóricas de compatibilidad, los campos de
|
||||
* caracteres mayores de 255 caracteres son tratados en una forma
|
||||
* especial al escribir parte de la longitud en el campo FIELD_DEC
|
||||
* Por razones prehistóricas de compatibilidad, los campos de
|
||||
* caracteres mayores de 255 caracteres son tratados en una forma
|
||||
* especial al escribir parte de la longitud en el campo FIELD_DEC
|
||||
* de acuerdo a la siguiente fórmula (Esto es hecho internamente):
|
||||
*
|
||||
* <fixed>
|
||||
@@ -267,16 +267,16 @@
|
||||
* FIELD->FIELD_LEN )
|
||||
* </fixed>
|
||||
*
|
||||
* El comando COPY STRUCTURE EXTENDED es pre-procesado en la función
|
||||
* El comando COPY STRUCTURE EXTENDED es pre-procesado en la función
|
||||
* __dbCopyXStruct() durante el tiempo de compilación.
|
||||
|
||||
* $EXAMPLES$
|
||||
* // Abre la base de datos, y copia su estructura a un nuevo archivo.
|
||||
* // Abre la base de datos, y copia su estructura a un nuevo archivo.
|
||||
* USE Test
|
||||
* __dbCopyXStruct( "TestEstr" )
|
||||
*
|
||||
* // Abre el nuevo archivo y lista todos sus registros
|
||||
* USE TestEstr
|
||||
* USE TestEstr
|
||||
* LIST
|
||||
*
|
||||
* $STATUS$
|
||||
@@ -284,7 +284,7 @@
|
||||
* $COMPLIANCE$
|
||||
* COPY STRUCTURE EXTENDED trabaja exactamente como en CA-Clipper.
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* Todas
|
||||
* $SEEALSO$
|
||||
* COPY STRUCTURE,CREATE,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate()
|
||||
* $END$
|
||||
@@ -299,47 +299,47 @@
|
||||
* $ONELINER$
|
||||
* Crea una estructura extendida ó usa una para crear otro archivo
|
||||
* $SYNTAX$
|
||||
* __dbCreate( <cNombreArchivo>, [<cDesdeArchivo>], [<cNombreRDD>],
|
||||
* __dbCreate( <cNombreArchivo>, [<cDesdeArchivo>], [<cNombreRDD>],
|
||||
* [<lNuevo>], [<cAlias>] ) --> lUsado
|
||||
* $ARGUMENTS$
|
||||
* <cNombreArchivo> es el nombre del archivo destino a crear y luego
|
||||
* abrir, (.dbf) es la extensión por defecto si ninguna es
|
||||
* <cNombreArchivo> es el nombre del archivo destino a crear y luego
|
||||
* abrir, (.dbf) es la extensión por defecto si ninguna es
|
||||
* especificada.
|
||||
*
|
||||
* <cDesdeArchivo> es el nombre de una estructura extendida opcional
|
||||
* desde la cual el archivo destino <cNombreArchivo> va a ser
|
||||
* <cDesdeArchivo> es el nombre de una estructura extendida opcional
|
||||
* desde la cual el archivo destino <cNombreArchivo> va a ser
|
||||
* construido.
|
||||
* Si es omitida, un nuevo archivo de estructura extendida vacía con
|
||||
* el nombre <cNombreArchivo> es creado y abierto, en el área de
|
||||
* Si es omitida, un nuevo archivo de estructura extendida vacía con
|
||||
* el nombre <cNombreArchivo> es creado y abierto, en el área de
|
||||
* trabajo actual.
|
||||
*
|
||||
* <cNombreRDD> es el nombre del RDD para crear el archivo destino,
|
||||
* <cNombreRDD> es el nombre del RDD para crear el archivo destino,
|
||||
* Si es omitido, es usado el RDD por defecto.
|
||||
*
|
||||
* <lNuevo> es una expresión lógica opcional, (.T.) abre el nombre
|
||||
* del archivo de destino <cNombreArchivo> en la próxima área
|
||||
* disponible sin uso y hace de esta el área actual. (.F.) abre el
|
||||
* archivo de destino en el área de trabajo actual.
|
||||
* El valor por defecto es (.F.). El valor de <lNuevo> es ignorado si
|
||||
* <lNuevo> es una expresión lógica opcional, (.T.) abre el nombre
|
||||
* del archivo de destino <cNombreArchivo> en la próxima área
|
||||
* disponible sin uso y hace de esta el área actual. (.F.) abre el
|
||||
* archivo de destino en el área de trabajo actual.
|
||||
* El valor por defecto es (.F.). El valor de <lNuevo> es ignorado si
|
||||
* <cDesdeArchivo> no es especificado.
|
||||
*
|
||||
* <cAlias> es un alias opcional para usar el archivo de destino con
|
||||
* el comando USE. Si no es especificado, alias esta basado en el
|
||||
* <cAlias> es un alias opcional para usar el archivo de destino con
|
||||
* el comando USE. Si no es especificado, alias esta basado en el
|
||||
* nombre <cNombreArchivo>.
|
||||
* $RETURNS$
|
||||
* __dbCreate() retorna (.T.) si hay una base de datos usada en el
|
||||
* área actual de trabajo (esta podría ser la nueva area de trabajo
|
||||
* __dbCreate() retorna (.T.) si hay una base de datos usada en el
|
||||
* área actual de trabajo (esta podría ser la nueva area de trabajo
|
||||
* elegida), ó (.F.) si no hay ninguna base de datos usada.
|
||||
* Note que si hubo éxito debería ser devuelto (.F.), pero si hay
|
||||
* alguna falla probablemente se termine con un error en tiempo de
|
||||
* ejecución y no con un valor de (.F.)
|
||||
* Note que si hubo éxito debería ser devuelto (.F.), pero si hay
|
||||
* alguna falla probablemente se termine con un error en tiempo de
|
||||
* ejecución y no con un valor de (.F.)
|
||||
* $DESCRIPTION$
|
||||
* La función __dbCreate() funciona en dos modos dependiendo del valor
|
||||
* La función __dbCreate() funciona en dos modos dependiendo del valor
|
||||
* de <cDesdeArchivo>:
|
||||
*
|
||||
* <b>1)</b> Si <cDesdeArchivo> está vacío o no está especificado, un
|
||||
* nuevo archivo de estructura extendida vacía, con el nombre
|
||||
* <cNombreArchivo> es creado y luego abierto, en el área actual de
|
||||
* nuevo archivo de estructura extendida vacía, con el nombre
|
||||
* <cNombreArchivo> es creado y luego abierto, en el área actual de
|
||||
* trabajo (<lNuevo> es ignorado).
|
||||
* El nuevo archivo tiene la siguiente estructura:
|
||||
*
|
||||
@@ -359,14 +359,14 @@
|
||||
* asume como un archivo de estructura extendida donde cada registro
|
||||
* contiene al menos los siguientes campos (en cualquier orden):
|
||||
* FIELD_NAME, FIELD_TYPE, FIELD_LEN y FIELD_DEC. Cualquier otro campo
|
||||
* es ignorado. Con esta información el archivo <cNombreArchivo> es
|
||||
* es ignorado. Con esta información el archivo <cNombreArchivo> es
|
||||
* creado y abierto en el nuevo area de trabajo (de acuerdo a <lNuevo>)
|
||||
* si esta es una nueva área de trabajo, esta se vuelve la actual.
|
||||
*
|
||||
* Por razones prehistóricas de compatibilidad, los campos de
|
||||
* caracteres del archivo de estructura extendida los cuales sean
|
||||
* mayores de 255 caracteres deberían ser tratados en una forma
|
||||
* especial al escribir parte de la longitud en el campo FIELD_DEC
|
||||
* Por razones prehistóricas de compatibilidad, los campos de
|
||||
* caracteres del archivo de estructura extendida los cuales sean
|
||||
* mayores de 255 caracteres deberían ser tratados en una forma
|
||||
* especial al escribir parte de la longitud en el campo FIELD_DEC
|
||||
* de acuerdo a la siguiente fórmula:
|
||||
*
|
||||
* <fixed>
|
||||
@@ -374,12 +374,12 @@
|
||||
* FIELD->FIELD_LEN := ( nLength % 256 )
|
||||
* </fixed>
|
||||
*
|
||||
* El comando CREATE FROM es pre-procesado en la función
|
||||
* El comando CREATE FROM es pre-procesado en la función
|
||||
* __dbCopyStruct() durante el tiempo de compilación.
|
||||
|
||||
* $EXAMPLES$
|
||||
* // Crea un nuevo archivo de estructura extendida, agrega algunos
|
||||
* // registros y luego crea un nueva base de datos desde este
|
||||
* // Crea un nuevo archivo de estructura extendida, agrega algunos
|
||||
* // registros y luego crea un nueva base de datos desde este
|
||||
* // archivo (CREATE FROM)
|
||||
*
|
||||
* __dbCreate( "molde" )
|
||||
@@ -405,7 +405,7 @@
|
||||
* $COMPLIANCE$
|
||||
* __dbCreate() trabaja exactamente como en CA-Clipper.
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* Todas
|
||||
* $FILES$
|
||||
* La librería es rdd
|
||||
* $SEEALSO$
|
||||
@@ -424,19 +424,19 @@
|
||||
* $SYNTAX$
|
||||
* CREATE <xcNombreArchivo> [VIA <xcNombreRDD>] [ALIAS <xcAlias>]
|
||||
* $ARGUMENTS$
|
||||
* <xcNombreArchivo> es el nombre del archivo de de destino a crear
|
||||
* <xcNombreArchivo> es el nombre del archivo de de destino a crear
|
||||
* y abrir, (*.dbf) es la extensión por defecto si ninguna es dada.
|
||||
* Este puede ser especificada un literal de nombre de archivo ó
|
||||
* Este puede ser especificada un literal de nombre de archivo ó
|
||||
* como una expresion de caracteres encerrada entre paréntesis.
|
||||
*
|
||||
* <b>VIA <xcNombreRDD></b> es el nombre del RDD con el cual se va
|
||||
* a crear el archivo de destino. Si es omitido, el RDD por defecto
|
||||
* es usado.
|
||||
* Este puede ser especificado como un literal de nombre de archivo
|
||||
* a crear el archivo de destino. Si es omitido, el RDD por defecto
|
||||
* es usado.
|
||||
* Este puede ser especificado como un literal de nombre de archivo
|
||||
* ó como una expresión de caracteres encerrada entre paréntesis.
|
||||
*
|
||||
* <cAlias> es un alias opcional para usar el archivo de destino con
|
||||
* el comando USE. Si no es especificado, alias esta basado en el
|
||||
* <cAlias> es un alias opcional para usar el archivo de destino con
|
||||
* el comando USE. Si no es especificado, alias esta basado en el
|
||||
* nombre <cNombreArchivo>.
|
||||
* $DESCRIPTION$
|
||||
* El comando CREATE, crea un nuevo archivo de estructura extendida
|
||||
@@ -455,7 +455,7 @@
|
||||
* El comando CREATE es pre-procesado en la función __dbCopyStruct()
|
||||
* durante el tiempo de compilación y usa este modo.
|
||||
* $EXAMPLES$
|
||||
* // Crea un nuevo archivo de estructura extendida, agrega algunos
|
||||
* // Crea un nuevo archivo de estructura extendida, agrega algunos
|
||||
* // registros y luego crea un nueva base de datos desde este archivo
|
||||
* // (CREATE FROM)
|
||||
*
|
||||
@@ -480,9 +480,9 @@
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
* CREATE trabaja exactamente como en CA-Clipper.
|
||||
* CREATE trabaja exactamente como en CA-Clipper.
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* Todas
|
||||
* $SEEALSO$
|
||||
* COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate()
|
||||
* $END$
|
||||
@@ -497,47 +497,47 @@
|
||||
* $ONELINER$
|
||||
* Crea una base de datos desde un archivo de estructura extendida
|
||||
* $SYNTAX$
|
||||
* CREATE <xcNombreArchivo> FROM <xcDesdeArchivo> [VIA <xcNombreRDD>]
|
||||
* CREATE <xcNombreArchivo> FROM <xcDesdeArchivo> [VIA <xcNombreRDD>]
|
||||
* [NEW] [ALIAS <xcAlias>]
|
||||
* $ARGUMENTS$
|
||||
* <xcNombreArchivo> es el nombre del archivo de de destino a crear
|
||||
* <xcNombreArchivo> es el nombre del archivo de de destino a crear
|
||||
* y abrir, (*.dbf) es la extensión por defecto si ninguna es dada.
|
||||
* Este puede ser especificada un literal de nombre de archivo ó
|
||||
* Este puede ser especificada un literal de nombre de archivo ó
|
||||
* como una expresión de caracteres encerrada entre paréntesis.
|
||||
*
|
||||
* <b>FROM <xcDesdeArchivo></b> es el nombre del archivo de estructura
|
||||
* extendida desde la cual el archivo de destino va a ser construido.
|
||||
* Este puede ser especificado como un literal de nombre de archivo
|
||||
* Este puede ser especificado como un literal de nombre de archivo
|
||||
* ó como una expresión de caracteres encerrada entre paréntesis.
|
||||
*
|
||||
* <b>VIA <xcNombreRDD></b> es el nombre del RDD con el cual se va
|
||||
* a crear el archivo de destino. Si es omitido, el RDD por defecto
|
||||
* es usado.
|
||||
* Este puede ser especificado como un literal de nombre de archivo
|
||||
* a crear el archivo de destino. Si es omitido, el RDD por defecto
|
||||
* es usado.
|
||||
* Este puede ser especificado como un literal de nombre de archivo
|
||||
* ó como una expresión de caracteres encerrada entre paréntesis.
|
||||
*
|
||||
* <b>NEW</b> abre el nombre del archivo de destino <cNombreArch> en
|
||||
* la próxima área disponible sin uso y hace de ésta el área actual.
|
||||
* Si es omitido, abre el archivo de destino en el área de trabajo
|
||||
* actual.
|
||||
* Si es omitido, abre el archivo de destino en el área de trabajo
|
||||
* actual.
|
||||
*
|
||||
* <b>ALIAS <xcAlias></b> es el alias opcional del archivo de destino
|
||||
* para usar con el comando USE. Si ninguno es especificado el alias
|
||||
* esta basado en el nombre <cNombreArchivo>.
|
||||
* $DESCRIPTION$
|
||||
* El comando CREATE FROM abre un archivo de estructura extendida
|
||||
* <xcDesdeArchivo> donde cada registro contiene al menos los
|
||||
* siguientes campos (en cualquier orden):
|
||||
* <xcDesdeArchivo> donde cada registro contiene al menos los
|
||||
* siguientes campos (en cualquier orden):
|
||||
* FIELD_NAME, FIELD_TYPE, FIELD_LEN y FIELD_DEC. Cualquier otro campo
|
||||
* es ignorado. Con esta información el archivo <cNombreArchivo> es
|
||||
* creado y abierto en el nuevo area de trabajo (de acuerdo a la
|
||||
* es ignorado. Con esta información el archivo <cNombreArchivo> es
|
||||
* creado y abierto en el nuevo area de trabajo (de acuerdo a la
|
||||
* cláusula NEW) si ésta es una nueva área de trabajo, esta se vuelve
|
||||
* la actual.
|
||||
*
|
||||
* Por razones prehistóricas de compatibilidad, los campos de
|
||||
* caracteres del archivo de estructura extendida los cuales sean
|
||||
* mayores de 255 caracteres deberían ser tratados en una forma
|
||||
* especial al escribir parte de la longitud en el campo FIELD_DEC
|
||||
* Por razones prehistóricas de compatibilidad, los campos de
|
||||
* caracteres del archivo de estructura extendida los cuales sean
|
||||
* mayores de 255 caracteres deberían ser tratados en una forma
|
||||
* especial al escribir parte de la longitud en el campo FIELD_DEC
|
||||
* de acuerdo a la siguiente fórmula:
|
||||
*
|
||||
* <fixed>
|
||||
@@ -554,7 +554,7 @@
|
||||
* $COMPLIANCE$
|
||||
* CREATE FROM trabaja exactamente como en CA-Clipper.
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* Todas
|
||||
* $SEEALSO$
|
||||
* COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate()
|
||||
* $END$
|
||||
@@ -571,9 +571,9 @@
|
||||
* $SYNTAX$
|
||||
* __FLEDIT( <aEstructura>, [<aListaCampos>] ) --> aEstructuraFiltrada
|
||||
* $ARGUMENTS$
|
||||
* <aEstructura> es un array multidimensional con la estructura de los
|
||||
* campos de la base de datos, la cual es usualmente la salida de
|
||||
* DBSTRUCT(), donde cada elemento del array tiene la siguiente
|
||||
* <aEstructura> es un array multidimensional con la estructura de los
|
||||
* campos de la base de datos, la cual es usualmente la salida de
|
||||
* DBSTRUCT(), donde cada elemento del array tiene la siguiente
|
||||
* estructura:
|
||||
*
|
||||
* <table>
|
||||
@@ -585,22 +585,22 @@
|
||||
* 4 nDecimales DBS_DEC
|
||||
* </table>
|
||||
*
|
||||
* <aListaCampos> es un array donde cada elemento es un nombre de
|
||||
* campo. Los nombres pueden ser especificados en mayúsculas o en
|
||||
* <aListaCampos> es un array donde cada elemento es un nombre de
|
||||
* campo. Los nombres pueden ser especificados en mayúsculas o en
|
||||
* minúsculas.
|
||||
* $RETURNS$
|
||||
* __FLEDIT() retorna un nuevo array multidimensional donde cada
|
||||
* elemento esta en la misma estructura que el original <aEstructura>,
|
||||
* pero el array es construido de acuerdo a la lista de campos en
|
||||
* __FLEDIT() retorna un nuevo array multidimensional donde cada
|
||||
* elemento esta en la misma estructura que el original <aEstructura>,
|
||||
* pero el array es construido de acuerdo a la lista de campos en
|
||||
* <aListaCampos>.
|
||||
* Si <aListaCampos> esta vacío, __FLEDIT() retorna una referencia al
|
||||
* array original <aEstructura>.
|
||||
* $DESCRIPTION$
|
||||
* __FLEDIT() puede ser usado para crear un subconjunto de la
|
||||
* __FLEDIT() puede ser usado para crear un subconjunto de la
|
||||
* estructura de la base de datos, basada en una lista de campos dadas.
|
||||
*
|
||||
* Note que los nombres de campos en <aEstructura> DEBEN ser
|
||||
* especificados en mayúsculas de lo contrario podría no encontrarse
|
||||
* Note que los nombres de campos en <aEstructura> DEBEN ser
|
||||
* especificados en mayúsculas de lo contrario podría no encontrarse
|
||||
* coincidencia.
|
||||
*
|
||||
* SET EXACT no tiene efecto en el valor retornado.
|
||||
@@ -638,16 +638,16 @@
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
* CA-Clipper tiene una función interna no documentada llamada
|
||||
* __FLEDIT(), en Harbour nosotros la llamamos __dbStructFilter().
|
||||
* El nuevo nombre da una mejor descripción de qué es lo que la función
|
||||
* hace. En Harbour __FLEDIT(), simplemente llama a __dbStructFilter()
|
||||
* CA-Clipper tiene una función interna no documentada llamada
|
||||
* __FLEDIT(), en Harbour nosotros la llamamos __dbStructFilter().
|
||||
* El nuevo nombre da una mejor descripción de qué es lo que la función
|
||||
* hace. En Harbour __FLEDIT(), simplemente llama a __dbStructFilter()
|
||||
* y por tanto la segunda es la función recomendada.
|
||||
*
|
||||
* Esta función es sólo visible si ../source/rdd/dbstrux.prg fué
|
||||
* Esta función es sólo visible si ../source/rdd/dbstrux.prg fué
|
||||
* compilado con la bandera HB_C52_UNDOC.
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* Todas
|
||||
* $FILES$
|
||||
* El archivo de cabecera es dbstruct.ch
|
||||
* La librería es rdd
|
||||
@@ -665,12 +665,12 @@
|
||||
* $ONELINER$
|
||||
* Filtra un array con estructura de base de datos.
|
||||
* $SYNTAX$
|
||||
* __dbStructFilter( <aEstructura>, [<aListaCampos>] )
|
||||
* __dbStructFilter( <aEstructura>, [<aListaCampos>] )
|
||||
* --> aEstructuraFiltrada
|
||||
* $ARGUMENTS$
|
||||
* <aEstructura> es un array multidimensional con la estructura de
|
||||
* los campos de la base de datos, la cual es usualmente la salida
|
||||
* de DBSTRUCT(), donde cada elemento del array tiene la siguiente
|
||||
* <aEstructura> es un array multidimensional con la estructura de
|
||||
* los campos de la base de datos, la cual es usualmente la salida
|
||||
* de DBSTRUCT(), donde cada elemento del array tiene la siguiente
|
||||
* estructura:
|
||||
*
|
||||
* <table>
|
||||
@@ -682,22 +682,22 @@
|
||||
* 4 nDecimales DBS_DEC
|
||||
* </table>
|
||||
*
|
||||
* <aListaCampos> es un array donde cada elemento es un nombre de
|
||||
* <aListaCampos> es un array donde cada elemento es un nombre de
|
||||
* campo.
|
||||
* Los nombres pueden ser especificados en mayúsculas o en minúsculas.
|
||||
* $RETURNS$
|
||||
* __dbStructFilter() retorna un nuevo array multidimensional donde
|
||||
* cada elemento esta en la misma estructura que el original
|
||||
* __dbStructFilter() retorna un nuevo array multidimensional donde
|
||||
* cada elemento esta en la misma estructura que el original
|
||||
* <aEstructura>, pero el array es construido de acuerdo a la lista de
|
||||
* campos en el array <aListaCampos>. Si <aListaCampos> esta vacío,
|
||||
* __dbStructFilter() retorna una referencia al array original
|
||||
* campos en el array <aListaCampos>. Si <aListaCampos> esta vacío,
|
||||
* __dbStructFilter() retorna una referencia al array original
|
||||
* <aEstructura>.
|
||||
* $DESCRIPTION$
|
||||
* __dbStructFilter() puede ser usado para crear un subconjunto de la
|
||||
* __dbStructFilter() puede ser usado para crear un subconjunto de la
|
||||
* estructura de la base de datos, basada en una lista de campos dadas.
|
||||
*
|
||||
* Note que los nombres de campos en <aEstructura> DEBEN ser
|
||||
* especificados en mayúsculas de lo contrario podría no encontrarse
|
||||
* Note que los nombres de campos en <aEstructura> DEBEN ser
|
||||
* especificados en mayúsculas de lo contrario podría no encontrarse
|
||||
* coincidencia.
|
||||
*
|
||||
* SET EXACT no tiene efecto en el valor retornado.
|
||||
@@ -732,12 +732,12 @@
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
* __dbStructFilter() es una extensión de Harbour. CA-Clipper tiene
|
||||
* una función interna no documentada llamada __FLEDIT(), que hace lo
|
||||
* mismo. El nuevo nombre da una mejor descripción de que es lo que
|
||||
* la función hace.
|
||||
* __dbStructFilter() es una extensión de Harbour. CA-Clipper tiene
|
||||
* una función interna no documentada llamada __FLEDIT(), que hace lo
|
||||
* mismo. El nuevo nombre da una mejor descripción de que es lo que
|
||||
* la función hace.
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* Todas
|
||||
* $FILES$
|
||||
* El archivo de cabecera es dbstruct.ch
|
||||
* La librería es rdd
|
||||
@@ -745,4 +745,3 @@
|
||||
* DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__FLEDIT()*
|
||||
* $END$
|
||||
*/
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* Copyright 2002 Alejandro de Gárate <alex_degarate@hotmail.com>
|
||||
* Traducción al Español de harbext.txt
|
||||
* Traducción al Español de harbext.txt
|
||||
*
|
||||
* Vea doc/license.txt por los términos de la licencia.
|
||||
*
|
||||
@@ -15,11 +15,11 @@
|
||||
|
||||
/* $DOC$
|
||||
* $FUNCNAME$
|
||||
* Extensiones a Harbour
|
||||
* Extensiones a Harbour
|
||||
* $CATEGORY$
|
||||
* Documentación
|
||||
* $ONELINER$
|
||||
* Extensiones a Harbour
|
||||
* Extensiones a Harbour
|
||||
* $DESCRIPTION$
|
||||
*<b>Extensiones al lenguaje:</b> </par>
|
||||
*---------------------------
|
||||
@@ -29,64 +29,64 @@
|
||||
* Clipper solamente permite la creación de objetos desde unas pocas
|
||||
* clases estándar.
|
||||
*
|
||||
* En Harbour, Ud. puede crear sus propias Clases completas con
|
||||
* En Harbour, Ud. puede crear sus propias Clases completas con
|
||||
* Métodos, Variables de Instancia, Variables de Clase y Herencia.
|
||||
* Aplicaciones enteras pueden ser designadas y codificadas en un
|
||||
* Aplicaciones enteras pueden ser designadas y codificadas en un
|
||||
* enfoque Orientado a Objetos.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
** @<FunctionName>() </par>
|
||||
*
|
||||
* Retorna el puntero (la dirección) a la función.
|
||||
*
|
||||
* El valor retornado no es útil a nivel de la programación de la
|
||||
* aplicación pero es usado a bajo nivel para implementar el código
|
||||
* Orientado a Objeto (Internamente, el método de una Clase es una
|
||||
* función estática, no hay un símbolo para ella, entonces esta es
|
||||
* accedida mediante su dirección).
|
||||
*
|
||||
* El valor retornado no es útil a nivel de la programación de la
|
||||
* aplicación pero es usado a bajo nivel para implementar el código
|
||||
* Orientado a Objeto (Internamente, el método de una Clase es una
|
||||
* función estática, no hay un símbolo para ella, entonces esta es
|
||||
* accedida mediante su dirección).
|
||||
*
|
||||
*
|
||||
** Clase TGetList
|
||||
*
|
||||
* Soporte Orientado a Objetos para el manejo de GetList.
|
||||
*
|
||||
*
|
||||
*
|
||||
** ProcName() soporte para el nombre de Métodos de las Clases.
|
||||
*
|
||||
* Los Métodos de Clases pueden ser recuperados de la pila de llamada.
|
||||
*
|
||||
*
|
||||
*
|
||||
** Memory() tiene nuevos valores de retorno.
|
||||
*
|
||||
* Vea hbmemory.ch
|
||||
*
|
||||
* Vea hbmemory.ch
|
||||
*
|
||||
*
|
||||
** TRANSFORM() --> Agregado de nueva función para el formateo de cadenas:
|
||||
*
|
||||
* @0 Hace el pad con ceros una cadena numérica.
|
||||
*
|
||||
*
|
||||
*
|
||||
** STOD() --> dDate
|
||||
*
|
||||
* Nueva función que convierte una cadena en el formato yyyymmdd a
|
||||
* valor de fecha (date).
|
||||
*
|
||||
* Nueva función que convierte una cadena en el formato yyyymmdd a
|
||||
* valor de fecha (date).
|
||||
*
|
||||
*
|
||||
** Declaración STRONG TYPE Opcional en tiempo de compilación (y advertencias
|
||||
* en tiempo de compilación de TYPE MISMATCH)
|
||||
* en tiempo de compilación de TYPE MISMATCH)
|
||||
*
|
||||
* Example: LOCAL/STATIC Variable AS ...
|
||||
* Example: LOCAL/STATIC Variable AS ...
|
||||
*
|
||||
*
|
||||
** El depurador de Harbour provee de nuevas clases interesantes:
|
||||
*
|
||||
* - La Clase TDbWindow podría ser la fundación de una ventana de
|
||||
* - La Clase TDbWindow podría ser la fundación de una ventana de
|
||||
* visualización multiplatforma.
|
||||
*
|
||||
* - La Clase TForm
|
||||
*
|
||||
* - La Clase TDbMenu implementa ambos menúes desplegables y
|
||||
* (pulldown & popup)
|
||||
* - La Clase TDbMenu implementa ambos menúes desplegables y
|
||||
* (pulldown & popup)
|
||||
*
|
||||
*
|
||||
*<b>Funcionalidad mejorada de la RTL:</b> </par>
|
||||
@@ -94,21 +94,20 @@
|
||||
*
|
||||
*- DIRECTORY( <cMascara>, <cBandera>, <lOchoPuntoTres> )
|
||||
*
|
||||
* El tercer parámetro es un parámetro de Harbour (opcional) e indica que
|
||||
* en aquellas plataformas que soportan nombres largos de archivo, Ud.
|
||||
* El tercer parámetro es un parámetro de Harbour (opcional) e indica que
|
||||
* en aquellas plataformas que soportan nombres largos de archivo, Ud.
|
||||
* solicita lo que podría considerarse el equivalente al nombre 8.3
|
||||
* Podría afectar ADIR() y DIR si ellas fueron modificadas para tomar
|
||||
* ventaja de esto. Esta retornará nombres largos si el sistena operativo
|
||||
* Podría afectar ADIR() y DIR si ellas fueron modificadas para tomar
|
||||
* ventaja de esto. Esta retornará nombres largos si el sistena operativo
|
||||
* lo soporta.
|
||||
*
|
||||
*
|
||||
*- HB_DISKSPACE( <nDisco>, <nTipo> )
|
||||
*
|
||||
* El segundo parámetro es un parámetro de Harbour (opcional) e indica
|
||||
* El segundo parámetro es un parámetro de Harbour (opcional) e indica
|
||||
* el tipo de información del disco que esta siendo requerida.
|
||||
* vea en ../doc/es/diskspac.txt para mayor información.
|
||||
*
|
||||
* $END$
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* Copyright 2000 Brian Hays <bhays@abacuslaw.com>
|
||||
* Documentación en Inglés de:
|
||||
* Documentación en Inglés de:
|
||||
* Readme for Idle state, HB_IDLEADD(), HB_IDLEDEL()
|
||||
* HB_IDLESTATE(), hb_idleState()
|
||||
*
|
||||
* Copyright 2000 Alejandro de Gárate <alex_degarate@hotmail.com>
|
||||
* Documentación en Español de:
|
||||
* Documentación en Español de:
|
||||
* Leame para Estado Inactivo, HB_IDLEADD(), HB_IDLEDEL()
|
||||
* HB_IDLESTATE(), hb_idleState()
|
||||
*
|
||||
@@ -32,14 +32,14 @@
|
||||
* El estado de espera ó inactivo es el estado de la máquina virtual de
|
||||
* Harbour cuando esta espera por una acción del usuario a través del
|
||||
* teclado ó el mouse. El estado inactivo ocurre actualmente durante
|
||||
* las llamadas a INKEY(). Todas las funciones que no usen la función
|
||||
* INKEY() pueden señalizar el estado inactivo con una llamada a la
|
||||
* función Harbour HB_IDLESTATE() ó hb_idleState() a nivel de lenguaje
|
||||
* las llamadas a INKEY(). Todas las funciones que no usen la función
|
||||
* INKEY() pueden señalizar el estado inactivo con una llamada a la
|
||||
* función Harbour HB_IDLESTATE() ó hb_idleState() a nivel de lenguaje
|
||||
* C.
|
||||
*
|
||||
* Durante los estado de espera, la máquina virtual llama al recolector
|
||||
* Durante los estado de espera, la máquina virtual llama al recolector
|
||||
* de memoria y este puede llamar a acciones definidas por el usuario
|
||||
* (tareas en segundo plano ó background). Este también libera porciones
|
||||
* (tareas en segundo plano ó background). Este también libera porciones
|
||||
* del tiempo de la CPU para algunas plataformas deficientes que no son
|
||||
* lo suficientemente inteligentes (Windows NT).
|
||||
*
|
||||
@@ -47,10 +47,10 @@
|
||||
* HB_IDLEADD() y HB_IDLEDEL().
|
||||
*
|
||||
* Para llamar directamente a acciones en segundo plano vea la función:
|
||||
* HB_IDLESTATE().
|
||||
* HB_IDLESTATE().
|
||||
*
|
||||
* Para indicar el estado inactivo desde código en lenguaje C vea la
|
||||
* hb_idleState() en la API,
|
||||
* hb_idleState() en la API,
|
||||
* $SEEALSO$
|
||||
* HB_IDLEADD(),HB_IDLEDEL()
|
||||
* $END$
|
||||
@@ -67,11 +67,11 @@
|
||||
* $SYNTAX$
|
||||
* HB_IDLEADD( <cbAccion> ) --> nHandle
|
||||
* $ARGUMENTS$
|
||||
* <cbAccion> es un bloque de código que será ejecutado durante los
|
||||
* estados de espera, No hay argumentos pasados a este bloque de código
|
||||
* durante la evaluación.
|
||||
* <cbAccion> es un bloque de código que será ejecutado durante los
|
||||
* estados de espera, No hay argumentos pasados a este bloque de código
|
||||
* durante la evaluación.
|
||||
* $RETURNS$
|
||||
* <nHandle> El manejador (un valor entero) que identifica la tarea.
|
||||
* <nHandle> El manejador (un valor entero) que identifica la tarea.
|
||||
* Este manejador puede ser usado para eliminar la tarea.
|
||||
* $DESCRIPTION$
|
||||
* HB_IDLEADD() agrega el pasado bloque de código a las lista de tareas
|
||||
@@ -110,11 +110,11 @@
|
||||
* Retorna <xAccion> igual a NIL si un manejador no válido es pasado
|
||||
* $DESCRIPTION$
|
||||
* La función HB_IDLEDEL() remueve la acción asociada con el identi-
|
||||
* ficador pasado desde la lista de tareas en segundo plano.
|
||||
* El identificador debería ser el valor retornado por la llamada
|
||||
* previa a la función HB_IDLEADD().
|
||||
* ficador pasado desde la lista de tareas en segundo plano.
|
||||
* El identificador debería ser el valor retornado por la llamada
|
||||
* previa a la función HB_IDLEADD().
|
||||
* Si la tarea especificada está definida, entonces el codeblock es
|
||||
* retornado, de otro modo el valor NIL es retornado.
|
||||
* retornado, de otro modo el valor NIL es retornado.
|
||||
* $EXAMPLES$
|
||||
* nTarea := HB_IDLEADD( {|| SayTime()} )
|
||||
* INKEY(10)
|
||||
@@ -122,7 +122,7 @@
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
* Extensión de Harbour
|
||||
* Extensión de Harbour
|
||||
* $PLATFORMS$
|
||||
* Todas
|
||||
* $FILES$
|
||||
@@ -147,11 +147,11 @@
|
||||
* $RETURNS$
|
||||
* NIL
|
||||
* $DESCRIPTION$
|
||||
* La función HB_IDLESTATE() solicita la recolección de memoria sin
|
||||
* uso y ejecuta una única tarea definida por el bloque de código
|
||||
* pasado con la función HB_IDLEADD(). Cada llamada a esta función
|
||||
* evalúa una tarea diferente en el orden de la creación de tareas.
|
||||
* No hay argumentos pasados durante la evaluación del bloque de
|
||||
* La función HB_IDLESTATE() solicita la recolección de memoria sin
|
||||
* uso y ejecuta una única tarea definida por el bloque de código
|
||||
* pasado con la función HB_IDLEADD(). Cada llamada a esta función
|
||||
* evalúa una tarea diferente en el orden de la creación de tareas.
|
||||
* No hay argumentos pasados durante la evaluación del bloque de
|
||||
* código.
|
||||
* Esta función puede ser llamada con seguridad, aún si no hay tareas
|
||||
* definidas en segundo plano.
|
||||
@@ -196,13 +196,13 @@
|
||||
* Nada.
|
||||
* $DESCRIPTION$
|
||||
* La función hb_idleState() es una función en lenguaje C que solicita
|
||||
* la recolección de memoria sin uso y ejecuta una sola tarea en
|
||||
* segundo plano, definida por el bloque de código pasado con la
|
||||
* función HB_IDLEADD(). Esta también libera porciones de tiempo de
|
||||
* CPU para aquellas plataformas que lo requieran.
|
||||
* la recolección de memoria sin uso y ejecuta una sola tarea en
|
||||
* segundo plano, definida por el bloque de código pasado con la
|
||||
* función HB_IDLEADD(). Esta también libera porciones de tiempo de
|
||||
* CPU para aquellas plataformas que lo requieran.
|
||||
*
|
||||
* Cada llamda a esta función evalúa una tarea diferente en el orden
|
||||
* de la creación de tareas. No hay argumentos pasados durante la
|
||||
* Cada llamda a esta función evalúa una tarea diferente en el orden
|
||||
* de la creación de tareas. No hay argumentos pasados durante la
|
||||
* evaluación del bloque de código.
|
||||
*
|
||||
* Esta función puede ser llamada con seguridad, aún si no hay tareas
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
* Vea doc/license.txt por los términos de la licencia.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
INTRODUCCION AL SEGUIMIENTO DE LA EJECUCIÓN (rastrear)
|
||||
======================================================
|
||||
|
||||
@@ -26,20 +26,20 @@ Este archivo explica como habilitar el seguimiento en Harbour.
|
||||
SEGUIMIENTO
|
||||
===========
|
||||
|
||||
Harbour implementa el seguimiento al agregar llamadas a la siguiente
|
||||
Harbour implementa el seguimiento al agregar llamadas a la siguiente
|
||||
macro en código C:
|
||||
|
||||
HB_TRACE(level, ("parametros estilo printf", arg1, arg2));
|
||||
|
||||
El nivel epecificado por la llamada a HB_TRACE afecta a Harbour en
|
||||
El nivel epecificado por la llamada a HB_TRACE afecta a Harbour en
|
||||
dos formas: tiempo de compilación y tiempo de ejecución.
|
||||
|
||||
|
||||
TIEMPO DE COMPILACION
|
||||
=====================
|
||||
|
||||
En tiempo de compilación, la macro chequea cuando la constante del
|
||||
preprocesador HB_TR_LEVEL es establecida a alguno de los siguientes
|
||||
En tiempo de compilación, la macro chequea cuando la constante del
|
||||
preprocesador HB_TR_LEVEL es establecida a alguno de los siguientes
|
||||
valores:
|
||||
|
||||
#define HB_TR_ALWAYS 0
|
||||
@@ -50,20 +50,20 @@ valores:
|
||||
#define HB_TR_DEBUG 5
|
||||
|
||||
Si no es establecida a alguna de estas, la macro es seteada al valor
|
||||
HB_TR_DEFAULT, la cual está actualmente establecida (en hbtrace.h) a
|
||||
HB_TR_DEFAULT, la cual está actualmente establecida (en hbtrace.h) a
|
||||
HB_TR_WARNING.
|
||||
|
||||
Cuando el usuario explícitamente establece HB_TR_LEVEL ó este es
|
||||
establecido por el compilador, sus efectos son como sigue: cualquier
|
||||
llamada en el código con un nivel mayor que HB_TR_LEVEL son borradas
|
||||
del código; estas llamadas simplemente desaparecen, y no hay efecto en
|
||||
Cuando el usuario explícitamente establece HB_TR_LEVEL ó este es
|
||||
establecido por el compilador, sus efectos son como sigue: cualquier
|
||||
llamada en el código con un nivel mayor que HB_TR_LEVEL son borradas
|
||||
del código; estas llamadas simplemente desaparecen, y no hay efecto en
|
||||
la perfomance del código después de eso.
|
||||
|
||||
|
||||
TIEMPO DE EJECUCIÓN
|
||||
===================
|
||||
|
||||
En tiempo de ejecución, el usuario puede establecer la variable de
|
||||
En tiempo de ejecución, el usuario puede establecer la variable de
|
||||
entorno HB_TR_LEVEL a una de:
|
||||
|
||||
HB_TR_ALWAYS
|
||||
@@ -73,8 +73,8 @@ entorno HB_TR_LEVEL a una de:
|
||||
HB_TR_INFO
|
||||
HB_TR_DEBUG
|
||||
|
||||
con el siguiente efecto: cualquiera de las llamadas a HB_TRACE que
|
||||
fueron dejadas por el compilador y que tenga un nivel inferior ó igual
|
||||
con el siguiente efecto: cualquiera de las llamadas a HB_TRACE que
|
||||
fueron dejadas por el compilador y que tenga un nivel inferior ó igual
|
||||
a HB_TR_LEVEL imprimirá sus argumentos a la salida stderr (pantalla).
|
||||
|
||||
|
||||
@@ -82,71 +82,71 @@ EJEMPLOS
|
||||
========
|
||||
|
||||
HB_TR_LEVEL HB_TR_LEVEL Descripción
|
||||
compilación ejecución
|
||||
compilación ejecución
|
||||
----------------------------------------------------------------------
|
||||
HB_TR_INFO HB_TR_ERROR Todas las llamadas con niveles HB_DEBUG
|
||||
son eliminadas del código, así ellas no
|
||||
tienen efecto en la perfomance; solamente
|
||||
llamadas con niveles de HB_TR_ERROR,
|
||||
HB_TR_INFO HB_TR_ERROR Todas las llamadas con niveles HB_DEBUG
|
||||
son eliminadas del código, así ellas no
|
||||
tienen efecto en la perfomance; solamente
|
||||
llamadas con niveles de HB_TR_ERROR,
|
||||
HB_TR_FATAL y HB_TR_ALWAYS son impresas.
|
||||
|
||||
HB_TR_WARNING HB_TR_INFO Todas las llamadaa con niveles HB_INFO y
|
||||
HB_DEBUG son eliminadas del código, así
|
||||
ellas no tienen efecto en la perfomance;
|
||||
solamente llamadas con niveles de
|
||||
HB_TR_ERROR, HB_TR_FATAL y HB_TR_ALWAYS
|
||||
son impresas. Note como estableciendo
|
||||
HB_TR_INFO en tiempo de ejecución no
|
||||
tiene ningún efecto, porque el código fué
|
||||
HB_DEBUG son eliminadas del código, así
|
||||
ellas no tienen efecto en la perfomance;
|
||||
solamente llamadas con niveles de
|
||||
HB_TR_ERROR, HB_TR_FATAL y HB_TR_ALWAYS
|
||||
son impresas. Note como estableciendo
|
||||
HB_TR_INFO en tiempo de ejecución no
|
||||
tiene ningún efecto, porque el código fué
|
||||
compilado con un menor nivel de rastreo.
|
||||
|
||||
Por ejemplo, Yo compilo Harbour en WinNT con gcc (MINGW32), así
|
||||
Por ejemplo, Yo compilo Harbour en WinNT con gcc (MINGW32), así
|
||||
usualmente establezco la variable de entorno C_USR a algo así:
|
||||
|
||||
export C_USR="-DHARBOUR_USE_WIN_GTAPI -DHB_TR_LEVEL=HB_TR_INFO"
|
||||
|
||||
y me aseguro que tengo todo el seguimiento para los niveles INFO,
|
||||
WARNING, ERROR, FATAL y ALWAYS. Si obtengo demasiada información,
|
||||
y me aseguro que tengo todo el seguimiento para los niveles INFO,
|
||||
WARNING, ERROR, FATAL y ALWAYS. Si obtengo demasiada información,
|
||||
en tiempo de ejecución, yo puedo cambiar la variable de entorno a:
|
||||
|
||||
export HB_TR_LEVEL=HB_TR_WARNING
|
||||
|
||||
y mantener alejado todo el seguimiento del nivel INFO. En este caso
|
||||
todas las llamadas a la función de seguimiento para el nivel INFO
|
||||
y mantener alejado todo el seguimiento del nivel INFO. En este caso
|
||||
todas las llamadas a la función de seguimiento para el nivel INFO
|
||||
serán hechas de todas formas, así que habrá un pérdida de perfomance.
|
||||
|
||||
|
||||
USO
|
||||
===
|
||||
|
||||
Cuando Harbour es compilado / ejecutado con algún nivel de seguimiento
|
||||
y, entonces usado para compilar una aplicación regular de Harbour, la
|
||||
Cuando Harbour es compilado / ejecutado con algún nivel de seguimiento
|
||||
y, entonces usado para compilar una aplicación regular de Harbour, la
|
||||
aplicación producirá MONTONES de información a la salida stderr.
|
||||
Si Ud. está usando un sensible shell de comando (como ser bash) Ud.
|
||||
Si Ud. está usando un sensible shell de comando (como ser bash) Ud.
|
||||
puede redirigir la salida stderr a un archivo como en:
|
||||
|
||||
|
||||
mi_aplic >rastro.txt
|
||||
|
||||
|
||||
REDIRECCION
|
||||
===========
|
||||
|
||||
La salida generada mientras se efectúa el seguimiento, va a stderr por
|
||||
defecto. Ud. puede controlar esto en tiempo de ejecución al establecer
|
||||
la variable de entorno HB_TR_OUTPUT al nombre del archivo donde Ud.
|
||||
podría querer que la salida de seguimiento sea dirigida. Si hay algún
|
||||
problema abriendo el archivo para escritura, la salida se revierte a
|
||||
La salida generada mientras se efectúa el seguimiento, va a stderr por
|
||||
defecto. Ud. puede controlar esto en tiempo de ejecución al establecer
|
||||
la variable de entorno HB_TR_OUTPUT al nombre del archivo donde Ud.
|
||||
podría querer que la salida de seguimiento sea dirigida. Si hay algún
|
||||
problema abriendo el archivo para escritura, la salida se revierte a
|
||||
stderr.
|
||||
|
||||
|
||||
RASTREANDO EL PREPROCESADOR Y EL COMPILADOR
|
||||
===========================================
|
||||
|
||||
Usualmente, Ud, no deseará habilitar el seguimiento en el preprocesador
|
||||
y en el compilador; de otra menera Ud. verá la salida de seguimiento
|
||||
mientras compila a Harbour mismo. Si Ud. REALMENTE quiere habilitar el
|
||||
seguimiento en el pre-procesador y/o el compilador, Ud. debe definir
|
||||
en adición a como se describe arriba, la siguiente variable, y entonces
|
||||
Usualmente, Ud, no deseará habilitar el seguimiento en el preprocesador
|
||||
y en el compilador; de otra menera Ud. verá la salida de seguimiento
|
||||
mientras compila a Harbour mismo. Si Ud. REALMENTE quiere habilitar el
|
||||
seguimiento en el pre-procesador y/o el compilador, Ud. debe definir
|
||||
en adición a como se describe arriba, la siguiente variable, y entonces
|
||||
recompilar el preprocesador / compilador:
|
||||
|
||||
HB_TRACE_UTILS
|
||||
@@ -157,18 +157,18 @@ El valor no tiene ninguna importancia.
|
||||
SEGUIMIENTO Y EJECUCION
|
||||
=======================
|
||||
|
||||
Es también posible habilitar y deshabilitar el seguimiento en tiempo
|
||||
de ejecución y averiguar y establecer el nivel de seguimiento. Desde
|
||||
Es también posible habilitar y deshabilitar el seguimiento en tiempo
|
||||
de ejecución y averiguar y establecer el nivel de seguimiento. Desde
|
||||
código C:
|
||||
|
||||
* Para averiguar el estado actual de seguimiento, y opcionalmente
|
||||
cambiar el estado actual a un valor dado (el cual debería estar
|
||||
en el rango [0,1], de otra manera, el estado actual permanece sin
|
||||
* Para averiguar el estado actual de seguimiento, y opcionalmente
|
||||
cambiar el estado actual a un valor dado (el cual debería estar
|
||||
en el rango [0,1], de otra manera, el estado actual permanece sin
|
||||
cambios):
|
||||
|
||||
hb_tracestate( estado );
|
||||
|
||||
Por lo tanto, para sólo averiguar el estado actual, Ud. puede llamar
|
||||
Por lo tanto, para sólo averiguar el estado actual, Ud. puede llamar
|
||||
en forma segura:
|
||||
|
||||
estado_actual = hb_tracestate(-1);
|
||||
@@ -184,31 +184,22 @@ c
|
||||
hb_tracestate(1);
|
||||
|
||||
|
||||
* Para averiguar el nivel actual de seguimiento, y opcionalemente
|
||||
cambiar el nivel actual a un valor dado (cual debería estar en el
|
||||
rango [0,5], de otra manera, el estado actual permanece sin cambios):
|
||||
* Para averiguar el nivel actual de seguimiento, y opcionalemente
|
||||
cambiar el nivel actual a un valor dado (cual debería estar en el
|
||||
rango [0,5], de otra manera, el estado actual permanece sin cambios):
|
||||
|
||||
hb_tracelevel( nivel );
|
||||
|
||||
|
||||
Por lo tanto, para sólo averiguar el nivel actual, Ud. puede llamar
|
||||
Por lo tanto, para sólo averiguar el nivel actual, Ud. puede llamar
|
||||
en forma segura:
|
||||
|
||||
nivel_actual = hb_tracelevel(-1);
|
||||
|
||||
|
||||
|
||||
|
||||
Hay funciones para ser llamadas desde código Clipper:
|
||||
(en realidad desde Harbour)
|
||||
|
||||
current_state := HB_TRACESTATE( [new_state] )
|
||||
current_level := HB_TRACELEVEL( [new_level] )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -192,9 +192,9 @@ For GCC on Linux:
|
||||
In which case you'll also need to export HB_SCREEN_LIB with
|
||||
the name of the appropriate screen library, if it doesn't
|
||||
match the default value in config/linux/gcc.cf.
|
||||
2) If you want to take advantage of compiler cache programs
|
||||
(such as http://ccaache.samba.org), you may set environment
|
||||
variable HB_CCACHE with the value containing the name of program.
|
||||
2) If you want to take advantage of compiler cache programs
|
||||
(such as http://ccaache.samba.org), you may set environment
|
||||
variable HB_CCACHE with the value containing the name of program.
|
||||
|
||||
For GCC on OS/2 for VIO mode:
|
||||
Note: You must point C_INCLUDE_PATH to the EMX include directory and
|
||||
@@ -240,8 +240,8 @@ For Watcom C/C++ 10.x (default Makefile creates DOS4G extender executables)
|
||||
Note: It is possible that you will have to increase the space reserved for
|
||||
DOS environment variables in order to successfuly run make utility
|
||||
(Add for example:
|
||||
SHELL=C:\COMMAND.COM C:\ E=2048 /P
|
||||
to your CONFIG.SYS )
|
||||
SHELL=C:\COMMAND.COM C:\ E=2048 /P
|
||||
to your CONFIG.SYS )
|
||||
|
||||
If you issue a "make install", it will try to install your header,
|
||||
executable and library files into directories given by
|
||||
@@ -293,4 +293,3 @@ pass parameters to the program. For example, 'build readfile harbour.ini'
|
||||
will rebuild the readfile.prg program and run it with 'harbour.ini' as a
|
||||
command line parameter.
|
||||
|
||||
|
||||
|
||||
@@ -65,11 +65,11 @@ Uses SET CENTURY
|
||||
|
||||
The following functions mean something :
|
||||
@E Use British date format
|
||||
/* QUESTION :
|
||||
Clipper appears to reverse the MM and DD parts of the
|
||||
date, regardless of SET DATE FORMAT, because if the
|
||||
date format is British, using @E displays the date in
|
||||
American. Harbour always treats @E as British.
|
||||
|
||||
So is Harbour's behaviour a bug fix or a bug?
|
||||
*/
|
||||
/* QUESTION :
|
||||
Clipper appears to reverse the MM and DD parts of the
|
||||
date, regardless of SET DATE FORMAT, because if the
|
||||
date format is British, using @E displays the date in
|
||||
American. Harbour always treats @E as British.
|
||||
|
||||
So is Harbour's behaviour a bug fix or a bug?
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user