La página Compatibilidad agrupa todos los parámetros relacionados con el mantenimiento de la compatibilidad con versiones anteriores de 4D. Recuerde que el número de opciones mostradas dependerá de la versión de 4D con la cual se creó la base de datos originalmente (2004.x, v11, v12).
Nota: esta página no aparece en bases creadas con una versión actual de 4D (bases no convertidas).
Los campos no son editables en los diálogos: en versiones anteriores de 4D, no era posible introducir valores utilizando campos en cajas de diálogo (mostradas, por ejemplo, utilizando el comando DIALOG). Esta limitación se eliminó desde 4D 2004. Puede conservar el comportamiento anterior, especialmente si su base de datos utiliza campos en diálogos para mostrar datos. Por defecto, esta opción está seleccionada para las versiones antiguas convertidas a versión 2004 y no está seleccionada para las bases de datos creadas a partir de la versión 2004.
Botones de opción agrupados por nombre: en las versiones anteriores de 4D, el funcionamiento coordinado de un grupo de botones de opción se obtenía dando una primera letra idéntica a las variables asociadas con botones (por ejemplo, m_boton1, m_boton2, m_boton3, etc.). A partir de 4D 2004 se cambió así: para funcionar de manera coordinada, un conjunto de botones de opción simplemente debe estar agrupado en el editor de formularios. Para mayor información, consulte Botones radio y botones radio imagen. Este nuevo modo es válido para botones radio, botones radio 3D y botones radio imagen Por razones de compatibilidad, el modo anterior se conserva por defecto en bases de datos convertidas. Sin embargo, puede forzar el uso del nuevo modo deseleccionando esta opción. Esta opción sólo aparece en bases convertidas de versiones anteriores. Esta seleccionada por defecto. Las bases de datos creadas a partir de la versión 2004 utilizan el nuevo modo.
Recargar el formulario para cada registro durante PRINT SELECTION: en versiones anteriores de 4D, el formulario utilizado durante una impresión utilizando el comando PRINT SELECTION se recargaba para cada registro. Esto permitía reinicializar automáticamente todos los parámetros de los objetos que el desarrollador hubiese podido modificar con el lenguaje en el evento de formulario On printing detail. Para optimizar el rendimiento, este mecanismo se eliminó a partir de 4D 2004. El desarrollador 4D ahora debe reinicializar él mismo los parámetros que quiere en el método de formulario, este funcionamiento es idéntico al de los formularios listados con el evento On display detail. No obstante, puede conservar el mecanismo anterior utilizando esta opción. Las bases de datos creadas en versión 2004 utilizan el nuevo modo.
No utilizar el nuevo modo de referenciar los contextos: cuando esta opción no está seleccionada (valor por defecto), el servidor web 4D pone el número del contexto en el URL de base de los documentos HTML enviados. Con el sistema anterior (opción seleccionada), el servidor web 4D envía al navegador el número del contexto por cada elemento de una página, haciendo menos rápidos los procesos. No obstante esta opción puede seleccionarse por razones de compatibilidad. Recuerde que debe reiniciar la base de datos después de modificar esta opción para que el nuevo funcionamiento tome efecto.
Borrar el “/” en las URLs desconocidas: en las versiones anteriores de 4D, las URLs desconocidas (URLs que no corresponden a páginas existentes ni a URLs especiales) se devolvían en los métodos base On Web Authentication y On Web Connection ($1) y no comenzaban con el carácter “/”. Esta particularidad se eliminó en 4D 2004. Sin embargo, si implementó algoritmos basados en este caso especial y quiere mantenerlos, deseleccione esta opción.
Prohibir soltar datos que no provengan de 4D: a partir de la v11, 4D permite arrastrar y soltar selecciones de objetos y/o archivos externos a 4D, como por ejemplo los archivos imagen, en el modo Aplicación. Esta posibilidad debe estar soportada por el código de la base. En las bases de datos convertidas de versiones anteriores de 4D, esta posibilidad puede traer problemas de funcionamiento si el código existente no está adaptado como corresponde. Esta opción permite anticiparse a estos posibles problemas de funcionamiento. Cuando esta opción está seleccionada, se rechaza el soltar objetos externos en formularios 4D. Note que insertar objetos externos aún es posible en los objetos que tienen la opción Soltar automático, cuando la aplicación puede interpretar automáticamente los datos soltados (texto o imagen). Para mayor información, consulte Arrastrar y soltar.
Ejecutar QUERY BY FORMULA en el servidor y Ejecutar ORDER BY FORMULA en el servidor: a partir de 4D v11, por razones de optimización, los comandos de búsquedas y de ordenación “por fórmula” se ejecutan en el servidor; sólo se devuelve el resultado al equipo cliente. Esto concierne a los siguientes comandos: QUERY BY FORMULA, QUERY SELECTION BY FORMULA y ORDER BY FORMULA. En caso de llamada directa de variables en la fórmula, la búsqueda se calcula con el valor de la variable en el equipo cliente. Por ejemplo,
QUERY BY FORMULA([tabla];[tabla]campo=lavariable)
se ejecutará en el servidor pero con el contenido de la variable lavariable del cliente. Por otra parte, este principio no aplica a la fórmulas utilizando métodos que, ellos mismos, llaman variables: en este caso el valor de las variables se evalúa en el servidor. En las bases de datos convertidas, este funcionamiento puede afectar los algoritmos existentes. Por lo tanto, por defecto en este contexto, estos comandos continúan siendo ejecutados en la máquina cliente. Si quiere tomar ventaja del nuevo algoritmo v11 en una base convertida, puede simplemente seleccionar estas opciones. Nota: esta opción puede definirse utilizando el comando SET DATABASE PARAMETER.
QUERY BY FORMULA usa uniones SQL: a partir de 4D v11, los comandos QUERY BY FORMULA y QUERY SELECTION BY FORMULA efectúan uniones basados en el modelo de SQL. Esto significa que no es necesario que exista una relación estructural entre la tabla A y la tabla B para utilizar una fórmula que contenga [Tabla_A ]campo_X=[Tabla_B]campo_Y. Como este mecanismo puede generar disfunciones en las aplicaciones existentes, está desactivado por defecto en las bases de datos convertidas. Se recomienda activarlo (después de revisar el código de la base) seleccionando esta opción con el fin de beneficiarse de la optimización de los comandos de búsqueda por fórmula. Notas:
Cuando el modo "Uniones SQL" está activo, los comandos QUERY BY FORMULA y QUERY SELECTION BY FORMULA utilizan sin embargo las relaciones automáticas definidas en el editor de estructura en los siguientes casos: - Si la fórmula no puede descomponerse en elementos de la forma {campo;comparador ;valor} - Si se comparan dos campos de la misma tabla.
Esta opción también puede definirse por proceso utilizando el comando SET DATABASE PARAMETER.
Autorizar las transacciones anidadas: activa el soporte de las transacciones multinivel. A partir de la v11, 4D acepta las transacciones anidadas en un número de niveles ilimitado. Como esta nueva operación puede generar problemas en las bases desarrolladas con versiones anteriores de 4D, está desactivado por defecto en las bases convertidas (las transacciones permanecen limitadas a un solo nivel). Si quiere tomar ventaja de las transacciones en varios niveles en una base convertida, debe seleccionar esta opción. Por defecto, esta opción no está seleccionada. Se especifica para cada base de datos. Nota: esta opción no tiene efecto en las transacciones efectuadas en el motor SQL de 4D. Las transacciones SQL siempre son multinivel.
Modo Unicode: se utiliza para habilitar o deshabilitar el modo Unicode para la base de datos actual. Siempre debe verificarse ya que es requerido por las aplicaciones 4D 64 bits.
Utilice los parámetros del sistema en formatos numéricos: a partir de v11, 4D utiliza los parámetros sistema regionales para los formatos de visualización numéricos (ver “Formatos de campos numéricos” en Formatos de salida). 4D reemplaza automáticamente los caracteres “,” y “.” en los formatos de visualización numérica por el separador de miles y el separador decimal definido en el sistema operativo, respectivamente. El punto y la coma son entonces considerados como los caracteres de marcadores de posición, siguiendo el ejemplo de 0 o #. En las versiones anteriores de 4D, los formatos de visualización numéricos no tienen en cuenta los parámetros regionales del sistema. Por ejemplo, el formato “###,##0.00” es un formato válido para un sistema americano. Sin embargo, cuando se aplica a un valor numérico mostrado en un sistema francés o suizo, el resultado es incorrecto. En las bases de datos convertidas, por compatibilidad, este nuevo mecanismo no está activado. Para beneficiarse de él, debe seleccionar esta opción.
Asignación automática de variables: en versiones anteriores de 4D, un mecanismo estándar del servidor web permite volver a copiar automáticamente en las variables proceso 4D el valor de las variables enviadas por medio de un formulario HTTP o un URL de tipo GET. En modo interpretado, el valor de toda variable recibida se copia directamente en una variable proceso 4D con el mismo nombre, en modo compilado, las variables deben haber sido previamente declaradas en un método proyecto COMPILER_WEB. A partir de 4D v13.4, este mecanismo es obsoleto y ya no está disponible en las nuevas bases de datos. Por razones de compatibilidad, se mantiene en las bases convertidas, pero puede desactivarlo desmarcando esta opción de compatibilidad. Ahora se recomienda utilizar los comandos dedicados WEB GET VARIABLES o WEB GET BODY PART.
Guardar los métodos como Unicode:esta opción se ignora (los métodos siempre se guardan como Unicode). Por favor consulte las versiones anteriores de documentación para mayor información.
Utilizar el tipo fecha en lugar del formato de fecha ISO en objetos: le permite almacenar las fechas en los atributos objeto como tipo fecha en lugar de texto en formato ISO. En las versiones anteriores de 4D, las fechas en atributos objeto solo podían almacenarse como cadenas. A partir de 4D v16 R6, las fechas en los atributos objeto se pueden almacenar en tipo fecha. Puede habilitar este comportamiento marcando esta opción (las fechas almacenadas previamente en el formato ISO permanecerán "tal cual", pero las nuevas fechas guardadas estarán en el tipo fecha). Esta función también se puede administrar por programación, por proceso, utilizando el comando SET DATABASE PARAMETER y el selector Dates inside objects.
Utilizar la nueva arquitectura para las aplicaciones desplegadas:esta opción está disponible para todas las aplicaciones a partir de 4D v15 R4. Activa o desactiva nuevos mecanismos relacionados con el despliegue de las aplicaciones 4D (debe ser definido en la máquina que genera la aplicación final). Los mecanismos controlados por esta opción se describen en las seccionesÚltimo archivo de datos abierto y Gestión de la conexión de las aplicaciones clientes. Esta opción está desactivada de forma predeterminada en las aplicaciones convertidas. Para beneficiarse de estos nuevos mecanismos, es necesario seleccionarlos de forma explícita.
Utilizar la notación objeto para acceder a las propiedades de los objetos (se requiere Unicode): esta opción permite el uso de caracteres ".", "[" Y "]" en su código como símbolos de notación objeto, utilizados para acceder a propiedades tokenizadas, y no como parte de una tabla, campo, método o nombre de variable. La activación de esta opción es obligatoria para las bases de datos creadas en versiones anteriores a 4D v17 si desea utilizar la notación objeto, ya que los símbolos ". []" estaban permitidos en los nombres en todas las versiones anteriores de 4D. Al activar esta opción para su base convertida, declara que su código cumple con la notación objeto. Se recomienda que verifique la compatibilidad de su código utilizando el CSM (consulte Página Verificar). Para más información sobre la notación objeto, consulte la sección Uso de la notación objeto. Nota: esta opción es obligatoria en las bases binarias convertidas a partir de 4D v20.
Utilizar XPath estándar: de forma predeterminada, esta opción no está marcada para las bases convertidas de una versión 4D anterior a v18 R3, y se marca si hay bases creadas con 4D v18 R3 y superior. A partir de v18 R3, la implementación de XPath en 4D se ha modificado para que sea más compatible y admitir más predicados. Por consiguiente, las funcionalidades no estándar de la implementación anterior ya no funcionan. Incluyen:
el caracter "/" inicial no es solo el nodo raíz: el uso de un caracter / como primer carácter de una expresión XPath no declara una ruta absoluta desde el nodo raíz
sin nodo actual implícito: el nodo actual debe incluirse en la expresión XPath
no hay búsquedas recursivas en estructuras repetidas: solo se analiza el primer elemento.
Aunque estas funcionalidades no son estándar, es posible que desee seguir utilizándolas para que su código continúe funcionando como antes; en este caso, simplemente active la opción deseleccionada. Por otro lado, si su código no se basa en la implementación no estándar y si desea beneficiarse de las funcionalidades XPath avanzadas en sus bases (como se describe en el comando DOM Find XML element), asegúrese de que la opción Utilizar XPath estándar esté marcada.
Utilizar un retorno de línea para el final de línea en macOS: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe los archivos texto con salto de línea (LF) como caracter de final de línea (EOL) por defecto en macOS en los nuevos proyectos. Si quiere beneficiarse de este nuevo comportamiento en proyectos convertidos desde versiones anteriores de 4D, marque esta opción. Ver TEXT TO DOCUMENT, Document to text y XML SET OPTIONS.
No añadir un BOM al escribir un archivo de texto unicode por defecto: a partir de 4D v19 R2 (y 4D v19 R3 para archivos XML), 4D escribe archivos de texto sin una marca de orden de bytes (BOM) por defecto. En versiones anteriores, los archivos de texto se escribían con una BOM por defecto. Seleccione esta opción si desea activar el nuevo comportamiento en los proyectos convertidos. Ver TEXT TO DOCUMENT, Document to text y XML SET OPTIONS.
Utilice DirectWrite para la renderización de texto en los formularios: en Windows, los proyectos 4D y las bases creadas con 4D v19 R3 y superiores utilizan la API DirectWrite en los formularios. Esta API mejora el renderizado de texto especialmente en configuraciones de alto DPI. Sin embargo, no se utiliza por defecto en los proyectos y bases creados con una versión anterior de 4D porque puede modificar la visualización general de sus formularios existentes. Marque esta opción si quiere beneficiarse de esta API en sus formularios -- pero tenga en cuenta que puede requerir que adapte el diseño de sus formularios en Windows. Cuando la opción está marcada, DirectWrite se utilizará para la renderización de texto con objetos formulario como texto estático y de entrada, casillas de selección, botones y botones de radio. Tenga en cuenta que no modificará la representación del texto de los listboxes que ya utilizan DirectWrite.
Mapear valores NULL a valores en blanco desmarcado por defecto al crear campos: para un mejor cumplimiento de las especificaciones de ORDA, en las bases creadas con 4D v19 R4 y superiores la propiedad de campo Mapear valores NULL a valores en blanco está desmarcada por defecto al crear campos. Puede aplicar este comportamiento por defecto a sus bases convertidas marcando esta opción (ahora se recomienda trabajar con valores Nulos ya que están totalmente soportados por ORDA).