La release 03 de la versión 2.0 de MultiBase corrige errores detectados y reportados por nuestros clientes.
En esta nueva release no es necesario recompilar ni re-enlazar los programas de las versiones anteriores.
Además de corregir errores, la release 03 incluye ciertas mejoras, siendo la más destacable de todas ellas la incorporación del entorno de programación «trans» en las versiones Run-Time. El funcionamiento de este entorno es idéntico al incluido en las versiones de Desarrollo de MultiBase. No obstante, en aquellas opciones referentes al desarrollo de una aplicación no se permitirá su ejecución. En caso de intentarlo aparecerá un mensaje indicando que se trata de una Licencia Run-Time de MultiBase.
A continuación se exponen los errores corregidos, clasificándolos según el objeto CTL al que pertenecen. Si alguno de estos errores se producía únicamente en un sistema operativo, éste se indica en su descripción. Por el contrario, si no se indica sistema operativo alguno, ello significa que el error se producía tanto en UNIX, como MS-DOS y Windows.
Si una de las columnas pertenecientes a la tabla de cabecera de un programa de tipo «cabeceras-líneas» tenía asignado el atributo LOOKUP, éste no funcionaba correctamente si dicha tabla se mantenía con scroll de <x> líneas. El problema surgía al ejecutar una consulta (query), siendo el número de filas que cumplían las condiciones menor que <x>. Al movernos por esta lista en curso «arriba-abajo» se limpiaban los cruces «lookups» de la primera fila.
Al definir una variable de tipo «pseudo» como «like» de una columna, si ésta tenía el atributo «CHECK» se producía un error de compilación.
[Windows]. Al ejecutar una consulta (query) en un FORM y sobrepasar con la condición el tamaño del campo, se dejaba un blanco al expandirlo, lo que provocaba que algunas consultas no devolviesen las filas correctas.
Al ejecutar una consulta (query), el flujo del programa no ejecutaba la instrucción no procedural «AFTER EDITQUERY OF campo» al pulsar la tecla asignada a la acción «faccept». Sin embargo, en las operaciones «add» y «update» sí se ejecutaban sus instrucciones relativas «AFTER EDITADD» y «AFTER EDITUPDATE» respectivamente.
Si se ejecutaba la instrucción «INTERCALATE» en un programa de mantenimiento «Cabeceras-Líneas» y se añadían «x» filas, al intentar borrarlas se producía el siguiente error: «Imposible actualizar una fila en la tabla». No obstante, la fila en curso se borraba, pero la columna de orden «ORDER BY» de la «JOINS» no renumeraba automáticamente.
Si se definía un FORM/FRAME en la sección «LAYOUT» con unas coordenadas distintas a las especificadas por defecto (LINE x COLUMN y), al ejecutar la opción «Salida» (OUTPUT) del menú por defecto no producía ninguna salida.
Se producía un error de compilación al utilizar instrucciones «AFTER GROUP OF número» de una instrucción «SELECT» preparada que incluyese la cláusula «ORDER BY».
En un menú definido con la cláusula «NO WAIT», al pulsar una tecla no contemplada en sus opciones (key), la ejecución del programa seguía con la siguiente instrucción.
Si se definía en la cláusula «KEY» de un menú las letras «ñ», «ç», etc. como teclas que debían activar una opción, ésta no se ejecutaba al pulsar las teclas «ñ», «ç», etc.
El editor de textos de MultiBase (tword con la opción -e) incluye a partir de esta release un contador de líneas (situado en la cabecera del editor). Asimismo, se ha añadido una opción («Ir a...» que permite ir directamente a la línea especificada por el usuario.
A partir de esta release, en la definición de las tablas temporales se pueden asignar los atributos propios del CTSQL (FORMAT, LABEL, etc).
A partir de esta release es posible utilizar el carácter «||» para concatenar dos expresiones sql. Por ejemplo:
select nombre || apellidos from clientes
La tabla derivada devuelta por la instrucción SELECT anterior sería la siguiente:
| (expression) | |
| Antonio | MORENO CANTERO |
| María Jesús | LUNA REQUENA |
| José | ROJAS MORCILLO |
| María Jesús | BORRÁS FAURA |
| Pedro | MOLERO HERAS |
| José Manuel | PALOMO VADILLO |
| Juan | SALGADO BOLÍVAR |
| ... |
[MS-DOS y Windows]. Al ejecutar la instrucción «ROLLFORWARD» se producía el siguiente error: «Fallo en ROLLFORWARD DATABASE».
En MS-DOS y Windows, al generar el manual de usuario para un programa creado con el generador de «VARIOS» se producían ciertos errores. En otros sistemas operativos, un programa que incluyese definiciones de STREAMS dinámicas daba errores a la hora de generar el manual de usuario.
[Windows]. La variable de entorno DBMETACH no funcionaba correctamente en MultiBase sobre el sistema operativo Windows.
[Windows]. Al usar la utilidad de «cortar-pegar» al portapapeles, propia de Windows, en una instrucción «WINDOW SCROLL FROM select», sólo funcionaba con tablas derivadas pequeñas. Cuando la información era extensa se producía el siguiente error: «Error en la aplicación. CTL ha causado un error de protección general ....».
En anteriores releases era necesario especificar el/los directorio(s) de la variable de entorno DBLIB en DBPROC para poder enlazar módulos (CTLINK).
Si una variable o frame definida mediante la cláusula LIKE se utilizaba para recoger valores de una instrucción SELECT, y ésta devolvía un valor nulo «NULL», se recogían blancos en lugar de dicho valor nulo «NULL».
Al utilizar una subselect (IN) en un programa CTL, se producía un error de compilación si no se definían variables con el mismo nombre que las columnas que se condicionaban en la cláusula «WHERE»
La ejecución de la instrucción «WHENEVER» con la cláusula «GOTO» producía un «core dumped» cuando se encontraba dentro de una librería.
[Windows]. Al ejecutar una instrucción de SQL errónea, al editar el fichero de errores se perdía parte del mensaje de error.
Si «PAGE HEADER» contenía una instrucción «PUT» y ésta no finalizaba con la cláusula «SKIP», la siguiente instrucción «PUT» con cláusula «COLUMN» no lo representaba correctamente.
En releases anteriores a la versión 2.0.0.2, ISAM no permitía abrir más de 16 ficheros, tanto en UNIX como MS-DOS o Windows. En dicha release, y por lo que respecta exclusivamente a UNIX, se amplió el número de ficheros abiertos por ISAM a 50. Asimismo, se incorporó una nueva variable de entorno, denominada MBISFILES, que teóricamente permitía ampliar el número máximo de ficheros abiertos po ISAM a 100. En la realidad, esta variable no funcionaba correctamente, produciéndose errores antes de conseguir abrir el límite especificado como valor.
El comando de comprobación de integridad de datos «TCHKIDX» no permitía chequear tablas que tuviesen más de 260.000 filas, aproximadamente.
El fichero «tprinter» admitía una descripción de atributos de impresión de 512 bytes como máximo.