Web de MiraMon

Bases de datos en MiraMon


Acceso a bases de datos con MiraMon Qué es ODBC y cómo funciona
Limitaciones del formato DBF y necesidad de una "DBF extendida" El formato "DBF extendida"
Transformación de una "DBF extendida" a una DBF clásica

Acceso a bases de datos con MiraMon

MiraMon permite acceder datos tabulares en formato DBF III, III+ y IV, así como también a datos tabulares (físicos o resultado de expresiones de consulta o cálculo) contenidos en otros formatos de archivos (como .xls, .mdb, etc) y en bases de datos (tales como MS-Access, Oracle, SQL Server, DB2, Excel y muchos otros); en estos últimos casos será necesario que existan y estén instalados los correspondientes drivers ODBC y, con la excepción del MDB (que admite acceso directo desde MiraMon), que se cree un archivo DSN para acceder a los datos. En versiones anteriores a la versión 4 de MiraMon, el formato DBF era el único que se utilizaba para las bases de datos.

A diferencia de otros programas, se puede construir las capas de MiraMon con consultas simultáneas en diferentes bases de datos, en diferentes formatos, de forma local (en su ordenador) o remota (bases de datos en servidores corporativos, en la red local, la intranet o Internet).


MiraMon utiliza, para poder leer de diferentes bases de datos, la tecnología ODBC (Open Database Connectivity) de Microsoft que permite acceder a diferentes bases de datos, relacionales y no relacionales, tanto para leer como para modificar la información. ODBC ofrece un entorno único e integrado para que cualquier aplicación, como MiraMon, pueda acceder a un gran número de formatos de bases de datos diferentes.

Se puede localizar la herramienta de configuración de la tecnología ODBC en las opciones de configuración de su ordenador, bajo el nombre de Orígenes de datos ODBC, en el Panel de Control (menú Inicio | Configuración).

Los componentes ODBC se instalan de forma automática en su ordenador cuando se instalan la mayoría de productos Microsoft, como por ejemplo Office, SQL Server, etc. A partir de la primera versión de Win2000 esta tecnología forma parte del sistema operativo y, por tanto, no es necesario instalarla de forma expresa.

Compruébese, en el panel de control (o en las herramientas administrativas en Win2000), que aparezca la entrada Orígenes de datos ODBC (o bien Fuente de datos ODBC, o también ODBC Data Sources). Si no aparece, se deberán instalar los componentes necesarios. Si su ordenador ya dispone de ODBC, recomendamos vivamente la actualización con las últimas versiones disponibles, dado que Microsoft actualiza constantemente esta tecnología con nuevas funcionalidades y conexiones a nuevas bases de datos.

Cómo instalar y actualizar ODBC

Las últimas versiones de los componentes ODBC pueden ser descargadas des de https://docs.microsoft.com/en-us/sql/odbc/microsoft/microsoft-supplied-odbc-drivers?view=sql-server-2017 para Access, Excel, Dbase, text, Oracle, etc, o desde https://docs.microsoft.com/ca-es/sql/connect/odbc/microsoft-odbc-driver-for-sql-server?view=sql-server-2017 para SQL Server. En general, se pueden encontrar estos complementos también bajo el nombre de MDAC (Microsoft Data Access Components).

Obsérvese que en esta página dispone de varias herramientas para descargar. Hay que descargar sólo el MDAC (NO el MDAC SDK).

Qué piezas forman ODBC

La tecnología ODBC está formada por diversas piezas:

  • Driver Manager: aplicación que se encuentra entre nuestra aplicación y las bases de datos. Es quien gobierna las interacciones y transmite los datos entre la aplicación y la base de datos.
  • Drivers: Conexiones específicas para cada una de las diferentes bases de datos. Es el Driver Manager el encargado de controlar todos los drivers.

    Si queremos acceder a unos datos en formato MS-Access, hace falta disponer de un driver para MS-Access; así mismo, si queremos acceder a unos datos en formato Oracle hace falta un driver específico para bases de datos Oracle.

Microsoft proporciona, a través de la instalación de la tecnología ODBC, algunos drivers para acceder a las bases de datos ms comunes en el mercado (por ejemplo MS-Access, SQL-Server, Oracle,...), y también algunos drivers para acceder a datos en formatos no estrictamente de bases de datos (por ejemplo Excel, Texto,...).

También se pueden conseguir otros drivers ODBC de otras marcas comerciales, para acceder a sus propios productos, por ejemplo el driver ODBC de la marca Oracle para acceder a las bases de datos en formato Oracle (por ejemplo https://www.oracle.com/technetwork/database/windows/downloads/utilsoft-098155.html).

Cómo establecer una conexión entre MiraMon y una base de datos

MiraMon ha sido preparado para utilizar la potencia de la tecnología ODBC. Con este hecho se abren muchas puertas de futuro para poder realizar consultas espaciales muy complejas, utilizando datos de grandes bases de datos.

  • Bases de datos en formato DBF: se puede acceder como hasta ahora.
  • Bases de datos en formato MS-Access (MDB): Se puede dirigir directamente al fichero MDB, MiraMon ya se encarga de establecer los protocolos para acceder a este tipo de fichero vía ODBC (obviamente hace falta tener instalados los drivers ODBC).
  • Cualquier otro formato de base de datos, relacionales o no: es necesario seguir los siguientes pasos.
1.- Abrir el gestor ODBC de las opciones de configuración del ordenador.
¿Dónde se localiza ODBC? WIN NT/2000, WIN95/98.

NOTA: El aspecto de esta ventana puede variar segn la versión y el idioma instalado. Esta imagen corresponde a la versión 3.520.7326.0 en inglés.

En este punto es necesario definir qué es un DSN: Data Source Name (fuente de datos), nos permite definir el acceso a la base de datos, qué driver se debe utilizar y cómo tiene que ser esta conexión.

Tipos de DSN:

    • USER DSN (fuente de datos del usuario): DSN propio de cada usuario. En entornos Windows NT, Windows 2000 y entornos posteriores, con las opciones de seguridad activadas, este DSN sólo lo puede utilizar el usuario que lo ha creado o el administrador del sistema. Resulta til para aumentar la seguridad (solo acceder el usuario en cuestión, sin contraseñas).
    • SYSTEM DSN (fuente de datos del sistema): DSN que puede utilizar cualquiera que tenga acceso al ordenador.
    • FILE DSN (fuente de datos en un fichero): DSN guardado en un fichero de texto con extensión DSN. Este fichero de texto se puede abrir con cualquier editor de textos y manipular su contenido. Como fichero de texto, se aplican los parmetros de seguridad de cualquier otro fichero.

    A la mayoría de usuarios, al menos al principio, les resultar ms cómodo acceder a las bases de datos vía DSN de fichero (DSN File), razón por la cual continuaremos bajo este caso.

  • 2.- Añadir un DSN de fichero (File DSN).

    Pulse sobre el botón Añadir (Add).

    3.- Escoger el driver adecuado para la base de datos a la qual se desea acceder.
    En este ejemplo, queremos acceder a una base de datos en formato Oracle.

    NOTA: Asegúrese que el driver elegido es la última versión disponible. Es posible que en la lista haya más de una versión de diferentes drivers.

    4.- Indicar el nombre y el directorio dónde se debe guardar el fichero DSN.
    Es importante recordar el lugar dónde se guarda este fichero y que tenga un nombre identificativo de la base de datos a la cual accede.

    5.- Indicar a qué base de datos se debe acceder, y las propiedades de la conexión.
    La ventana de configuración de la conexión es específica para cada driver, en este caso sólo se muestra la ventana del driver para bases de datos en formato Oracle.

    NOTA: Esta caja de diálogo se puede evitar escribiendo el nombre de usuario en la clave USER= y la contraseña en la clave PWD= en el fichero DSN correspondiente. Se debe tener presente el nivel de privacidad de este fichero si se toma esta decisión.
    6.- Una vez el fichero DSN ha sido creado, MiraMon (y todas las aplicaciones de soporte) podrn acceder a la base de datos a través de este fichero.


    En MiraMon, habitualmente, DBF es el formato de tablas elegido por ser el más popular de los formatos de tablas alfanuméricas de datos (exceptuando las formas tabulares en texto plano), tanto por su sencillez y velocidad, como por el hecho de no depender de terceros, o simplemente porque, al difundir información, se quiere tener la certeza de que se podrá abrir la información en un ordenador del que se desconoce qué drivers tiene instalados (por lo que es la opción por defecto en la creación de ficheros MMZX o MMZ destinados a una amplia difusión por Internet), a pesar del gran potencial que presenta el acceso a las diferentes fuentes tabulares ampliamente explicadas en los apartados precedente.

    Sin embargo, el formato DBF, por su antigüedad, presenta una serie de limitaciones ámpliamente explicadas en el apartado 1.Antecedentes y motivación del documento técnico disponible en catalán Especificació del format "DBF estesa" e inglés "Extended DBF" format specification (longitud del nombre del archivo o con caracteres extraños -acentuados, diéresis, espacios, etc-, longitud del nombre de cada campo de máximo 10 caracteres o con caracteres extraños, entre un largo listado).

    MiraMon soluciona las más importantes de estas limitaciones estableciendo una variación del formato DBF que denomina "DBF extendida", el cual se detalla en los apartados 2. Características y utilización del formato "DBF extendida" y 3. Especificación del formato "DBF extendida" del mismo documento técnico.

    Se debe tener presente, sin embargo, que si una tabla no necesita superar las limitaciones de la DBF clásica, es preferible escribirla en este formato para que sea legible por otros softwares que no soporten la "DBF extendida" dado que el formato no mantiene la compatibilidad descendente (una "DBF extendida" no puede ser leída, ni parcialmente, por un software que lea DBF clásicas). Esto hace que si se debe llevar una tabla "DBF extendida" a un software que sólo puede leer DBF clásicas habrá que aplicar algunas operaciones sobre la tabla para que vuelva a ser DBF clásica (reducción del número de campos, etc), tal y como se explica más adelante en Transformación de una "DBF extendida" a una DBF clásica.

    Actualmente MiraDades informa, en la opción "Información | Información de la tabla", de si la tabla es extendida o no, y es posible ver cuántos campos tenemos (y por lo tanto si uno de los motivos que no sea DBF clásica es haber excedido los 255 campos) así como las características de los campos en el listado correspondiente, por lo que podemos ver también cuáles son aquellos que no cumplen con la especificación de la DBF clásica (nombres de campo más largos de 10 caracteres o con caracteres extraños -acentuados, espacios,...), campos de texto con longitud superior a 254 caracteres). Sin embargo, este análisis resulta demasiado laborioso si se quiere hacer con un volumen de tablas grande o con cierta frecuencia, por lo que conviene disponer de un mecanismo que facilite la transformación de una tabla "DBF extendida" a una tabla DBF clásica.

      IMPORTANTE: El paso de una "DBF extendida" a una DBF clásica casi siempre conllevará pérdida de información, por lo que es muy conveniente hacer una copia de seguridad de la tabla que va a ser "simplificada".


    Las características del formato "DBF extendida" se encuentran explicadas en el apartado 3. Especificación del formato "DBF extendida" del documento técnico disponible en catalán Especificació del format "DBF estesa" e inglés "Extended DBF" format specification.


    El requerimiento principal para transformar una "DBF extendida" a una DBF clásica es agilizar la forma de convertir campos extendidos en campos clásicos, así como controlar el número de campos totales.

    ¿Qué se debe hacer para pasar de "DBF extendida" a clásica (a nivel de usuario)?:

    • Convertir los nombres de los campos en mayúscula, sin caracteres extendidos, limitando la longitud máxima a 10 caracteres y vigilando que no haya repeticiones de nombre con los otros campos existentes.
    • Controlar que el tamaño de un campo de texto (tipo 'C', de caracteres) no supera 254.
    • Reducir el número total de campos, sin rebasar los 255 permitidos en la DBF clásica.

    A través de la herramienta GestBD es posible convertir de forma automática una "DBF extendida" en clásica, aunque si se prefiere hacerlo manualmente para un mayor control, puede efectuarse a través de MiraDades, en la ventana de "Modificar estructura de la tabla".

    MiraDades incorpora las siguientes características para facilitar la conversión de una "DBF extendida" en clásica:

    1. En el listado de campos, aparece junto a cada nombre de campo extendido:
      • El nuevo nombre propuesto de menos de 10 caracteres y sin caracteres extendidos.
      • El tamaño necesario que debe tener el campo para no truncar la información.

      Esto provoca que el recurso deba tener una barra de desplazamiento (scroll) horizontal, si es necesario. Si el campo es extendido pero el motivo no es el nombre, este se escribirá igualmente para dar una mayor facilidad visual al usuario.

    2. Un botón junto al botón "cambiar" con nombre "clásico": al pulsar el botón el campo pasa a ser clásico adoptando el nombre y tamaño propuestos. Si el tamaño en la DBF clásica supera los 255 caracteres se avisa que al truncarlo se perderá información y se da la oportunidad de continuar o de cancelar.

    3. Bajo el listado de nombres de campos aparece el motivo por el que la DBF es extendida, si lo es. Ejemplos que pueden aparecer:
      • Hay nombres de campo extendidos, hay tamaños de campos de texto de más de 254 caracteres y hay más de 255 campos.
      • Hay tamaños de campos de texto de más de 254 caracteres y hay más de 255 campos.
      • Hay nombres de campo extendidos y hay tamaños de campos de texto de más de 254 caracteres.

    4. Si la información extendida junto a los campos molesta se puede activar la casilla Oculta la información extendida.

    El GestBD (gestor de bases de datos) incorpora las siguientes características para facilitar la conversión de una "DBF extendida" en clásica:

    1. Un botón al lado del botón "ODBC->DBF" con nombre "DBF extendida": al pulsar el botón se ofrece la posibilidad de nombrar el fichero de DBF clásica resultado de la transformación.
    2. Si el tamaño en la DBF clásica rebasa los 255 caracteres se avisa que en trucarlo se perderá información y se da la oportunidad de continuar o de cancelar. En caso de que se continúe y se trunque información, automáticamente se genera una copia de seguridad de la tabla "DBF extendida" original.