Son factibles ilimitadas posibilidades a través de uns serie de herramientas de programación potentes y bien diseñadas.
| Prestaciones de programación |
FileMaker Pro® 5 |
4th Dimension® |
| Lenguaje | Lenguaje de Scripting | Lenguaje de programación completo |
| Escribir sus propias funciones | No | Si |
| Soporte para variables | Campos globales y campos resumen El uso de campos necesita mucho espacio en disco y puede provocar
la fragmentación de datos debido a la escritura y rescritura constantes |
Variables reales:locales, de proceso, de interproceso Las variables se almacenan en memoria y no ocupan espacio de los
datos |
| Soporte para Arrays | No | Si |
| Soporte para Punteros | No | Si |
| Soporte para BLOBS | No | Si |
| Código reutilizable | Limitado Importación de un script cada vez desde otro fichero. Cada script puede necesitar modificaciones para trabajar en el nuevo fichero |
Si Creación de código genérico que pueda usarse en cualqueir sitio utilizando punteros y variables; copiar y pegar desde un sitio a otro, utilizar Insider para utilizar completas librerías de código |
| Debugger | No | Si Debugger con prestaciones completas. Rastreo a través de cualquier método: determinar valor de campos y variables, selecciones actuales, conjuntos, etc. Entrada y salida de cualquier método. |
| Código ejecutado/Script basado en eventos | Apertura o cierre de la base; cuando el usuario hace clic en un botón desde otro script | Eventos de la base; eventos formulario; eventos de impresión; Objeto
activo o eventos de campo, acciones de usuario; desde otro método;
desde otro proceso. |
| Triggers | No | Si |
| Procedimientos almacenados | No | Si |
| Procesos Múltiples | Solo en el servidor- un proceso por conexión | En servidor, monousuario, o 4D Client Procesos corriendo en el fondo, apertura de diferentes tablas en diferentes procesos, etc. |
| Control de procesos por parte del desarrollador | No | Si |
| Semáforos - multi proceso/comunicación con usuario | No | Si |
| Transacciones - retraso de la escritura de datos en dico hasta que se acepten todas las entradas relacionadas. Vuelta atrás automática en los cambios si el usuario cancela. | No | Si |
| Control de flujo & Bucles | Si | Si |
| Constantes - Predefinidas y definidas por el usuario | No | Si |
| Gestión de ventanas | No | Si |
| Crear, Borrar y Editar Registros en memoria sin interacción directa del usuario | Limitada Registros duplicados, reemplazan valores en conjuntos encontrados |
Si |
| Sobreescibir los controles de la entrada de datos en el código no se puede modificar | No | Si |
| Acceso al entorno del sistema | Via AppleScript (Mac) o Active X (Win) | Si - Mac y Windows |
| Tipos de datos | Texto, número, fecha, hora, contenedor, cálculo, resumen, global | Alpha, texto, entero, entero largo, real, (fluctuante), fecha, hora, imagen, boolean, subtabla, BLOB (4D utiliza variables en el lugar de campos de datos de contenedores, cálculo, resumen, y globales) |
| Tipos de variables | Ninguna | String, texto, entero, entero largo, real, puntero, imagen, boolean, arrays (todos los tipos excepto BLOB), BLOB |