VERIFY DATA FILE

4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 11.3 (Modificado)


VERIFY DATA FILE (rutaEstructura; rutaDatos; objetos; opciones; metodo{; arrayTablas; arrayCampos})

ParámetroTipoDescripción
rutaEstructuraTexto-->Ruta de acceso al archivo de estructura de la base a
verificar
rutaDatosTexto-->Ruta de acceso del archivo de datos de la base a
verificar
objetosNumérico-->Objetos a verificar
opcionesNúmero-->Opciones de verificación
metodoTexto-->Nombre del método 4D de retrollamada
arrayTablasArray num-->Números de las tablas a verificar
arrayCamposArray num 2D-->Números de los índices a verificar

Descripción

El comando VERIFY DATA FILE efectúa una verificación estructural de los objetos contenidos en el archivo de datos 4D designado por rutaEstructura y rutaDatos.

Nota: para mayor información sobre el proceso de verificación de datos, consulte el Manual de Diseño.

rutaEstructura designa el archivo de estructura (compilado o no) asociado con el archivo de datos a verificar. Puede tratarse del archivo de estructura abierto o de cualquier otro archivo de estructura. Usted debe pasar un nombre de ruta completo, expresado con la sintaxis del sistema operativo. También puede pasar una cadena vacía, en este caso aparece una caja de diálogo estándar de apertura de archivos que permite al usuario designar el archivo de estructura a utilizar.

rutaDatos designa un archivo de datos 4D (.4DD). Debe corresponder al archivo de estructura definido por el parámetro rutaEstructura. Atención, usted puede designar el archivo de estructura actual pero el archivo de datos no debe ser el archivo actual (abierto). Para verificar si el archivo de datos está abierto, utilice el comando VERIFY CURRENT DATA FILE. Si intenta verificar el archivo de datos actual con el comando VERIFY DATA FILE, se genera un error.

El archivo de datos designado se abre en modo sólo lectura. Debe asegurarse de que ninguna aplicación acceda a este archivo en modo escritura, de lo contrario los resultados de la verificación podrían ser distorsionados.

En el parámetro rutaDatos, puede pasar una cadena vacía, un nombre de archivo o una ruta de acceso completa, expresada en la sintaxis del sistema operativo. Si pasa una cadena vacía, aparecerá la caja de diálogo estándar de apertura de archivos de manera que el usuario puede especificar el archivo a revisar (note que en este caso, no es posible seleccionar el archivo de datos actual). Si pasa únicamente un nombre de archivo de datos, 4D lo buscará en el mismo nivel que el archivo de estructura especificado.

El parámetro objetos se utiliza para designar los tipos de objetos a verificar. Puede verificar dos tipos de objetos: registros e índices. Puede utilizar las siguientes constantes, que se encuentran en el tema "Data file maintenance":

- Verify Records (4)

- Verify Indexes (8)

- Verify All No Callback (16)

Para verificar los registros y los índices, pase el total de Verify Records+Verify Indexes. El valor 0 (cero) también puede ser utilizado para obtener el mismo resultado. La opción Verify All No Callback es un caso particular. Efectúa la verificación interna, pero por razones internas, no permite la retrollamada de métodos. Esta verificación es sin embargo compatible con la creación de un historial.

El parámetro opciones se utiliza para definir las opciones de verificación. Una sola opción está disponible actualmente, se encuentra en el tema "Data file maintenance": Do not create log file (16384).

En principio, el comando VERIFY DATA FILE crea un archivo de historial en formato XML (por favor vaya al final de la descripción de este comando). Puede cancelar esta operación pasando esta opción. Para crear el archivo de historial, pase 0 en opciones.

El parámetro metodo permite definir un método de retrollamada que será llamado regularmente durante la verificación. Si pasa una cadena vacía, no se llama ningún método. Si el método pasado no existe, la verificación no se lleva a cabo, se genera un error y la variable OK toma el valor 0. Cuando se llama, este método recibe hasta 5 parámetros dependiendo del tipo de evento que origina la llamada (ver la tabla de llamadas). Es imperativo declarar estos parámetros en el método:

- $1Entero largoTipo de mensaje (ver tabla)
- $2Entero largoTipo de objeto
- $3TextMensaje
- $4Entero largoNúmero de tabla
- $5Entero largoReservado

La siguiente tabla describe el contenido de los parámetros en función del tipo de evento:

Evento$<1 (<Entero largo)$<2 (<Entero largo)$<3 (<Text)$<4 (<Entero largo)$<5 (<Entero largo)
Mensaje10Mensaje de PorcentajeReservado
progresiónrealizado (0-100)
Fin de la verificación2Tipo de objeto Texto deNúmero deReservado
mensaje OKtabla o índice
Error3Tipo de objeto Texto de men-Número deReservado
saje de errortabla o índice
Fin de ejecución40DONE0Reservado
Advertencia5Tipo de objetoTexto de men-Número de Reservado
saje de errortabla o índice

Tipo de objeto: cuando un objeto es verificado, puede enviarse un mensaje "finalizado" ($1=2), error ($1=3) o advertencia ($1=5). El tipo de objeto devuelto en $2 puede ser uno de los siguientes:

0 = indeterminado

4 = registro

8 = índice

16 = objeto estructura (control preliminar del archivo de datos).

Caso particular: cuando $4 = 0 para $1=2, 3 ó 5, el mensaje no concierne a una tabla sino a un archivo de datos en su conjunto.

El método de retrollamada también debe retornar un valor en $0 (Entero largo), permitiendo controlar la ejecución de la operación:

- Si $0 = 0, la operación continúa normalmente

- Si $0 = -128, la operación se detiene sin que se genere error

- Si $0 = otro valor, la operación se detiene y el valor pasado en $0 se devuelve como número de error. Este error puede ser interceptado por un método de gestión de errores.

Dos arrays opcionales también pueden ser utilizados por este comando:

El array arrayTablas contiene los números de las tablas cuyos registros van a ser verificados. Permite limitar la verificación de ciertas tablas. Si este parámetro no se pasa o si el array está vacío y el parámetro objetos contiene Verify Records, todas las tablas serán verificadas.

El arrayCampos contiene los números de los campos indexados que deben ser verificados. Si este parámetro no se pasa o si el array está vacío y el parámetro objetos contiene Verify Indexes, todos los índices serán verificados. El comando ignora los campos que no están indexados. Si un campo contiene varios índices, todos son verificados. Si un campo forma parte de un índice compuesto, la totalidad del índice se verifica.

Debe pasar un array 2D en arrayCampos. Para cada línea del array:

- El elemento {0} contiene el número de la tabla,

- Los otros elementos {1...x} contienen los números de los campos.

Por defecto, el comando VERIFY DATA FILE crea un archivo de historial en formato XML (si no ha pasado la opción Do not create log file, vea el parámetro opciones). Su nombre está basado en el archivo de datos y está ubicado junto a este archivo. Por ejemplo, para un archivo de datos llamado "data.4dd," el archivo de historial será llamado "data_verify_log.xml."

Ejemplos

1. Verificación simple de los datos y de los índices:

   VERIFY DATA FILE($NomEstructura;$NomData;Verify Indexes+Verify Records;Do not create log file;"")

2. Verificación completa con archivo de historial:

   VERIFY DATA FILE($NomEstructura;$NomData;Verify All No Callback;0;"")

3. Verificación de los registros únicamente:

   VERIFY DATA FILE($NomEstructura;$NomData;Verify Records;0;"")

4. Verificación de los registros de las tablas 3 y 7 únicamente:

   ARRAY LONGINT($arrTablaNums;2)
   ARRAY LONGINT($arrIndex;0) `no utilizado pero obligatorio
   $arrTablaNums{1}:=3
   $arrTablaNums{2}:=7
   VERIFY DATA FILE($NomEstructura;$NomData;Verify Records;0;"FollowScan";$arrTableNums;$arrIndex)

5. Verificación de índices específicos (índice del campo 1 de la tabla 4 e índice de los campos 2 y 3 de la tabla 5):

   ARRAY LONGINT($arrTablaNums;0) `no utilizado pero obligatorio
   ARRAY LONGINT($arrIndex;2;0) `2 líneas (columnas añadidas luego)
   $arrIndex{1}{0}:=4 ` número de tabla en elemento 0
   APPEND TO ARRAY($arrIndex{1};1) `número del primer campo a verificar
   $arrIndex{2}{0}:=5 ` número de la tabla en elemento 0
   APPEND TO ARRAY($arrIndex{2};2) ` número del primer campo a verificar
   APPEND TO ARRAY($arrIndex{2};3) ` número del segundo campo a verificar
   VERIFY DATA FILE($NomEstructura;$NomData;Verify Indexes;0;"FollowScan";$arrTablaNums;$arrIndex)

Ver también

VERIFY CURRENT DATA FILE.

Variables y conjuntos sistema

Si el método de retrollamada no existe, la verificación no se efectúa, se genera un error y la variable sistema OK toma el valor 0.


4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente