4D v16.3

Mensajes de error

Inicio

 
4D v16.3
Mensajes de error

Mensajes de error  


 

 

Esta sección describe los diferentes mensajes generados por el compilador. Estos mensajes son de diferentes tipos:

  • advertencias, que ayudan a evitar trampas comunes;
  • errores, que usted debe corregir;
  • mensajes de control de ejecución, generados dentro de 4D.

Estos mensajes se generan durante el proceso de compilación. Cada mensaje está acompañado de un ejemplo del problema y cuando es necesario, de una explicación adicional.

Uso de puntero(s) como parámetro(s) de COPY ARRAY

 COPY ARRAY(Puntero->;Array)

Uso de puntero(s) como parámetro(s) de SELECTION TO ARRAY

 SELECTION TO ARRAY(Puntero->;MiArray)
 SELECTION TO ARRAY([MiTabla]MiCampo;Puntero->)

Uso de puntero(s) como parámetro(s) de ARRAY TO SELECTION

 ARRAY TO SELECTION(Puntero->;[MiTabla]MiCampo)

Uso de puntero(s) como parámetro(s) de LIST TO ARRAY

 LIST TO ARRAY(Lista;Puntero->)

Uso de puntero(s) como parámetro(s) de ARRAY TO LIST

 ARRAY TO LIST(Puntero->;Lista)

Uso de puntero en una declaración de array

 ARRAY REAL(Puntero->;5)

El comando ARRAY REAL(Array;Puntero->) no genera esta advertencia. El valor de la dimensión de un array no tiene ninguna influencia sobre su tipo. En este ejemplo, el array al que hace referencia el puntero debe haber sido definido en otra parte.

Uso de puntero(s) como parámetro(s) de DISTINCT VALUES

 DISTINCT VALUES(Puntero->;Array)

Utilización de la función Undefined.

 If(Undefined(Variable))

La función Undefined siempre devuelve FALSE en una base compilada.
Este método está protegido por una contraseña.
Un botón con acción automática no tiene nombre en la página X del formulario MiForm.
Todos sus botones deben tener nombres para evitar conflictos.
Asume que el puntero apunta a una expresión alfanumérica.

 Pointer->≤2≥:="a"

Asume que la cadena index es numérica.

 StringPointer->≥:="a"

Asume que el índice del array es de tipo real.

 ALERT(MyArray{Pointer->})

Falta un parámetro en la llamada al comando del plug-in.

 WR SET FONT(Area)
 
Nota: es posible desactivar y activar individualmente las advertencias con las siguientes etiquetas:
//%W-número_de_advertencia para desactivar una advertencia
//%W+número_de_advertencia para activar una advertencia
Estas activaciones y desactivaciones son efectivas para todo el código analizado en el plan de compilación. Si quiere desactivar o activar una advertencia de manera global, inserte la etiqueta apropiada en un método llamado "Compiler_xxx" ya que estos métodos son analizados primero por el compilador. Por ejemplo, para desactivar la advertencia "Puntero en COPY ARRAY", puede insertar la etiqueta "//%W-518.1" en la ubicación deseada.

Errores  

Estos mensajes se generan durante el proceso de compilación. Le corresponde a usted corregir estos errores para que el compilador pueda generar una base compilada. Cada mensaje está acompañado de un ejemplo del problema y cuando es necesario, de una explicación adicional.

Declaración

El tipo de la variable no es compatible con el operador. No es posible hacer una instrucción con estos tipos.

 MyBoolean:=True
 MyReal:=MyBoolean

Cambiando el número de dimensiones de un array.

 ARRAY TEXT(MiArray;5;5)
 ARRAY TEXT(MiArray;5)

Conflicto de tipo sobre la variable MiArray en el formulario.

 ARRAY INTEGER(MiArray)

Declarando un array sin dimensiones.

 ARRAY INTEGER(MiArray)

Variable esperada

 COPY ARRAY(MiArray;"")


El tipo de la variable es desconocido. Esta variable se utiliza en el método M1.
No se puede determinar el tipo de variable. Es necesaria una directiva de compilación.
Tipo de constante incorrecto

 
 OK:="El clima es agradable"

El método M1 es desconocido.
La línea contiene una llamada a un método que no existe o no existe más.

Incorrecto uso de un campo.

 MiFecha:=Add to date(CampoBooleano;1;1;1)


La variable Variable no es un método.
 Variable(1)

La variable Variable no es un array.

 Variable{5}:=12

El resultado de la función no es compatible con la expresión.

 Texto:="Número"+Num(i)

El tipo de la variable no es compatible con el operador

 Entero:=MiFecha*Texto

No se puede efectuar una asignación con estos tipos.

 $i:="3"
 $($i):=5

El índice del array no es numérico.

 EntArray{"3"}:=4

No se puede efectuar una asignación con estos tipos

 C_TEXT(Variable)
 COPY ARRAY(TextoArray;Variable)

No se puede efectuar una asignación con estos tipos

 Variable:=Num(Variable)

No se puede efectuar una asignación con estos tipos

 Variable:=MiBooleano

Cambiando el array EntARRAY de tipo Entero a una variable de tipo Texto

 ARRAY TEXT(EntArray;12)

si EntArray fue declarado en otra parte como un array de enteros.

Intentando desreferenciar una variable que no es de tipo puntero.

 Variable->:=5

si Variable no es de tipo puntero.

Redeclaración de la variable Var1 de tipo texto a tipo numérico.

 Var1:=3.5

Incorrecto uso de un campo.

 Variable:=[MiTabla]MiCampo

[MiTabla]MiCampo es un campo tipo Fecha. Variable es de tipo Numérico.


Sintaxis

El resultado de la función no es un puntero.

 Variable:=Num("El clima es agradable")->

No es posible desreferenciar esta función.

Error de sintaxis.

 If(Booleano)
 End for

Demasiados corchetes de apertura ({) .
La línea contiene más corchetes de apertura que de cierre.

Demasiados corchetes de cierre (})..
La línea contiene más corchetes de cierre que de apertura.

Falta un paréntesis de cierre ).
La línea contiene más paréntesis de apertura que de cierre.

Falta un paréntesis de apertura (.
La línea contiene más paréntesis de cierre que de apertura.

Falta un campo.

 If(Modified(Variable))

Falta un paréntesis de cierre ).

 C_INTEGER($

Falta una variable.

 C_INTEGER([MiTabla]MiCampo)

Tipo de constante incorrecto : Alfanumérico

 C_INTEGER(${"3"})

Falta un punto y coma (;).

 COPY ARRAY(Array1 Array2)


Mac OS
  • Demasiados caracteres de apertura para los índices de la cadena.
 MiCadena≤3:="a"

Demasiados caracteres de cierre para los índices de la cadena.

 MiCadena3≥:="a"


Windows

Demasiados caracteres de apertura para los índices de la cadena.
 MiCadena[[3:="a"

Demasiados caracteres de cierre para los índices de la cadena.

 MiCadena 3]]:="a"

No se esperaba una subtabla.

 ARRAY TO SELECTION(Array;Subtabla)

El parámetro de una clausula IF debe ser un booleano.

 If(Puntero)

La expresión es muy compleja.
Divida su instrucción en varias instrucciones más cortas.

El método es muy complejo.
Demasiadas estructuras Case of...End case y/o If…End if.

Campo desconocido.
Su método, probablemente copiado de otra base, contiene •???• en lugar de un nombre de campo.

Tabla desconocida.
Su método, posiblemente copiado de otra base, contiene •???• en lugar de un nombre de tabla.

Puntero a una expresión incorrecta.

 Puntero:=->Variable+3

Uso incorrecto de índice de cadena.

 MiReal≤3≥o MiReal[[3]]

Utilización incorrecta de la Variable VARIABLE de Tipo Texto como una variable de tipo Real

 MiCadena≤Variable≥o MiCadena[[Variable]]

donde Variable no es una variable numérica.

Parámetros

El resultado de esta función no es compatible con la expresión.

 MiMetodo(Num(MiCadena))

si MiMetodo espera una expresión de tipo Booleano.

Se han pasado demasiados parámetros a este método.

 DEFAULT TABLE(Tabla;Form)

El resultado de esta función no es compatible con la expresión.

 MiMetodo(3+2)

si MiMetodo espera una expresión Booleana.

El resultado de esta función no es compatible con la expresión.

 C_INTEGER($0)
 $0:=False

El resultado de esta función no es compatible con la expresión.

 C_INTEGER(${3})
 For($i;3;5)
    ${$i}:=String($i)
 End for

Este comando no requiere ningún parámetro

 SHOW TOOL BAR(MiVar)

Este comando requiere al menos un parámetro.

 DEFAULT TABLE

MiCadena no puede pasarse como parámetro a este método.

 MiMetodo(MiCadena)

si MiMetodo está esperando un parámetro Booleano.

El tipo del parámetro $1 es diferente en el llamado y en el método llamado.

 Calcular("3+2")

con la directiva C_INTEGER($1) en Calcular.

Uno de los parámetros en COPY ARRAY es una variable.

 COPY ARRAY(Variable;Array)

Redeclaración de la variable $1 de tipo Real a tipo Texto.

 $1:=String($1)

Un array no puede ser un parámetro.
ReInit(MiArray)Para pasar un array a un método, necesita para un puntero al array.

Operadores

El tipo de variable no es compatible con el operador.

 Bool2:=Bool1+True

La suma no puede realizarse sobre campos Booleanos.

No se esperaba el operador >.

 QUERY([MiTabla];[MiTabla]MiCampo=0;>)

No se pueden compara dos variables de estos tipos

 If(Numero=Imagen2)

No se puede transformar en negativo este tipo de variable.

 Boolean:=-False


Comandos de plug-ins

El comando de plug-in PExt no parece estar definido correctamente.

No se pasaron suficientes parámetros a este comando de plug-in.

Se pasaron demasiados parámetros a este comando de plug-in.

El comando Variable del plug-in no parece estar correctamente definido.


Errores generales

Dos métodos tienen el mismo nombre : Nombre.
Para compilar su base, todos los métodos de proyecto deben tener nombres diferentes.

Error interno # xx.
Si aparece este mensaje, llame al Soporte técnico de 4D e informe el número del error.

La variable Variable no pudo ser declarada. Esta variable se utiliza en el método M1.
El tipo de la variable no puede ser determinado. Es necesaria una directiva de compilación.

El método original está dañado.
El método está dañado en la estructura original. Bórrelo o reemplácelo.

Comando 4D desconocido.
El método está dañado.

Redeclaración de la variable Variable en el formulario Formulario.
Este mensaje aparece si usted da, por ejemplo, el nombre OK a una variable de tipo gráfico en un formulario.

El nombre de la función es también el nombre de una variable en el formulario.
Renombre la función o la variable.

Un método y una variable tienen el mismo nombre : Nombre.
Renombre el método o la variable.

Un comando de plug-in y una variable tienen el mismo nombre: Nombre.
Renombre el comando de plug-in comando o la variable.

No se puede llamar un comando que no es hilo seguro de un método declarado como hilo seguro.Modifique el método para que sea hilo seguro (no utilizar cualquier comando que no sea hilo seguro) o cambiar la propiedad de declaración del método para iniciar un proceso cooperativo

No puede llamar al método 'MethodName' que no es hilo seguro desde un método declarado hilo seguro.
Modificar el método para que sea hilo seguro o cambiar la propiedad de declaración del método con el fin de iniciar un proceso cooperativo.

Estos mensajes son generados por 4D durante la ejecución de la base compilada y son visualizados en una ventana de error específica.

El resultado está por fuera del rango.
Si MiArray es un array de 5 elementos, este mensaje aparece si usted trata de acceder al elemento 17 en el array.

División por cero.

 Var1:=0
 Var2:=2
 Var3:=Var2/Var1

Acceso a un parámetro que no existe.
Utilización de la variable local $4 cuando sólo tres parámetros han sido pasados al método actual.

El puntero no está correctamente inicializado.

 MiPuntero->:=5

si MiPuntero no ha sido inicializado aún.

La cadena de destino es más pequeña que la fuente.

 C_STRING(MiCadena1;5)
 C_STRING(MiCadena2;10)
 MiCadena2:="Flores"
 MiCadena1:=MiCadena2

La referencia del carácter no es válida.

 i:=-30
 MiCadena[[i]]:=MiCadena2 o MiCadena[[i]]:=MiCadena2

El parámetro es una cadena vacía.

 MiCadena[[1]]:=""
 MiCadena[[1]]:=""

Módulo por cero.

 Var1:=0
 Var2:=2
 Var3:=Var2% Var1

Parámetros incorrectos en un comando Execute Formula.

 EXECUTE FORMULA("MiMetodo(MiAlfa)")

si MiMetodo espera un parámetro diferente de un alfanumérico.

Puntero a una variable desconocida.

 MiPuntero:=Get pointer("Variable")
 MiPuntero:="MiCadena"

si Variable no aparece explícitamente en la base.

Intento de redireccionar utilizando un puntero.

 Booleano:=Puntero->

si Puntero apunta a un campo de tipo Entero.

Mal uso de un puntero o puntero a una variable desconocida.

 Caracter:=CadenaVar[[Puntero->]]
 Caracter:=CadenaVar[[Puntero]]

si Puntero no apunta a un número.



Ver también 

Consejos de optimización
Detalles de sintaxis
Guía de declaración
Utilización de directivas de compilación

 
PROPIEDADES 

Producto: 4D
Tema: Compilador

 
HISTORIA 

 
PALABRAS CLAVES 

warning

 
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)