4D v16.3

VERIFY DATA FILE

Inicio

 
4D v16.3
VERIFY DATA FILE

VERIFY DATA FILE 


 

VERIFY DATA FILE ( rutaEstructura ; rutaDatos ; objetos ; opciones ; metodo {; arrayTablas {; arrayCampos}} ) 
Parámetro Tipo   Descripción
rutaEstructura  Texto in Ruta de acceso al archivo de estructura de la base a verificar
rutaDatos  Texto in Ruta de acceso del archivo de datos de la base a verificar
objetos  Entero largo in Objetos a verificar
opciones  Entero largo in Opciones de verificación
metodo  Texto in Nombre del método 4D de retrollamada
arrayTablas  Array entero largo in Números de las tablas a verificar
arrayCampos  Array entero 2D, Array entero largo 2D, Array real 2D in Números de los índices a verificar

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 el archivo de datos está abierto actualmente, 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 "Mantenimiento archivo de datos”:

Constante Tipo Valor Comentario
Verify all Entero largo 16
Verify indexes Entero largo 8 Esta opción verifica la consistencia física de los índices, sin enlace a los datos. Señala llaves inválidas pero no le permite detectar llaves duplicadas (dos índices que apuntan al mismo registro). Este tipo de error sólo puede detectarse con la opción Verificar todos.
Verify records Entero largo 4

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 realiza una verificación interna completa. Esta verificación es compatible con la creación de un historial.

El parámetro opciones se utiliza para definir las opciones de verificación. Las siguientes opciones están disponibles, accesibles vía las constantes del tema Mantenimiento archivo de datos

Constante Tipo Valor Comentario
Do not create log file Entero largo 16384 Por lo general, este comando crea un archivo de historial en formato XML (consulte el final de la descripción del comando). Con esta opción, no se creará un archivo de historial.
Timestamp log file name Entero largo 262144 Cuando esta opción se pasa, el nombre del archivo de historial generado contendrá la fecha y hora de su creación; como resultado, no reemplazará cualquier archivo de historial generado anteriormente. Por defecto, si no se pasa esta opción, los nombres de archivos de historial no son marcados con la fecha y hora y cada nuevo archivo generado sustituye al anterior.
<br/>

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 en función de los objetos verificados y de 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 (Texto)$4 (Entero largo)$5 (Entero largo)
Mensaje10Mensaje de progresiónPorcentaje realizadoReservado
Fin de la verificación (**)2Tipo de objeto (**) Texto del mensaje OKNúmero de tabla o de índiceReservado
Error3Tipo de objeto (**) Texto dek mensaje de errorNúmero de tabla o de índiceReservado
Fin de ejecución40DONE0Reservado
Advertencia5Tipo de objeto (**)Texto dek mensaje de errorNúmero de tabla o de índiceReservado

(*) El evento Fin de la verificación ($2=1) no se devuelve nunca cuando el modo de verificación es Verify All. Sólo se utiliza en modo Verify Records o Verify Indexes.
(**) Tipo de objeto: cuando un objeto se verifica, puede enviarse un mensaje "terminado" ($1=2), error ($1=3) o terminado ($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.

Nota: no es posible interrumpir la ejecución vía $0 luego de que el evento se haya generado Fin de ejecución ($4=1).

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 estructura de la base actual y está ubicado en la carpeta Logs de esta base. Por ejemplo, para un archivo de estructura llamado “myDB.4db,” el archivo de historial se llamará “myDB_Verify_Log.xml.”
Si ha pasado la opción Timestamp log file name, el nombre del archivo de historial incluye la fecha y la hora de su creación en la forma "AAAA-MM-DD HH-MM-SS", que nos da, por ejemplo: “myDB_Verify_Log_2015-09-27 15-20-35.xml”. Esto significa que cada nuevo archivo de historial no reemplaza al anterior, pero podría requerir acción manual posterior para eliminar archivos innecesarios.
Independientemente de la opción seleccionada, tan pronto como se genera un archivo de historial, su ruta se devuelve en la variable del sistema Document después de la ejecución del comando.

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

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

Verificación completa con archivo de historial:

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

Verificación de los registros únicamente:

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

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

 ARRAY LONGINT($arrTableNums;2)
 $arrTableNums{1}:=3
 $arrTableNums{2}:=7
 VERIFY DATA FILE($StructName;$DataName;Verify records;0;"FollowScan";$arrTableNums)

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)

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. Si un archivo de historial se ha generado, su ruta completa se devuelve en la variable sistema Document.



Ver también 

VERIFY CURRENT DATA FILE

 
PROPIEDADES 

Producto: 4D
Tema: Entorno 4D
Número 939

Este comando modifica la variable sistema OKEste comando modifica la variable sistema DocumentEste comando modifica la variable sistema Error

 
HISTORIA 

Modificado: 4D v11 SQL Release 3
Modificado: 4D v15 R3

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)