Info
La configuración del driver en O3Designer, debe realizarse como Consultas SQL.
Como forma alternativa al uso de JDBC-ODBC Bridge, se provee un driver JDBC propio que permite el acceso a datos de hojas de cálculo Excel y archivos DBase. El mismo se encuentra en la librería idrivers-<version>.jar que se distribuye con el producto (su ubicación es <O3_DIR>/classes/jdbc
Estos drivers JDBC tienen limitaciones importantes:
- se permiten sólo consultas a la base de datos.
- no se permite realizar proyecciones en las consultas (lista de campos en el select)
- no se puede filtrar datos en la consulta (los select no permiten where).
- en el caso de dbase, solo se reconocen algunos tipos de datos: C (character), D (Date), N (Numeric) y F (Float).
Básicamente, en ambos drivers la única consulta permitida es "select * from nombre-de-tabla", y ambos reconocen "nombre-de-tabla" como una consulta válida y equivalente a "select * from nombre-de-tabla".
DBase
Clase: | com.ideasoft.db.drivers.dbf.DBFDriver |
---|---|
URL: | jdbc:dbf:<path_to_directory> |
donde path_to_directory es un camino absoluto a una carpeta conteniendo los archivos .dbf. Los nombres de esos archivos (sin la extension .dbf) son usados como nombres de tablas en las consultas.
Por ejemplo, en O3Designer, hay que poner lo siguiente:
Driver: | com.ideasoft.db.drivers.dbf.DBFDriver |
---|---|
Protocolo: | dbf |
Parámetros: | /opt/data |
Si existe un archivo /opt/data/catalogo.dbf, la consulta "select * from catalogo", o simplemente "catalogo", traera todos los datos contenidos en el archivo.
Info
Driver incluido en versiones 5.4.023 o anteriores.
Excel
Clase: | com.ideasoft.db.drivers.xls.XLSDriver |
---|---|
URL: | jdbc:xls:<path_to_excel_file>[;titlesLine=x][;titlesColumn=y] |
donde path_to_excel_file es un camino absoluto a el archivo excel, x es la linea de titulos e y es la columna donde comienzan los títulos. Por omisión, se toman como valor titlesColumn=1 y titlesLine=1. Notese que la columna se indica numéricamente, si la tabla comienza en la columna "B", debe ponerse titlesColumn=2.
El driver de Excel utiliza los nombres de las hojas como nombres de tabla de base de datos. En cada hoja busca una tabla cuya primera linea este compuesta de strings, que tomara como los nombres de los campos. Se puede indicar en la URL cual es la tabla (en caso de haber mas de una) con los argumentos titlesLine y titlesColumn.
Por ejemplo, en O3Designer, hay que poner lo siguiente:
Driver: | com.ideasoft.db.drivers.xls.XLSDriver |
---|---|
Protocolo: | xls |
Parámetros: | /opt/data/datos.xls |
Cómo tratar los campos de tipo fecha
Es importante notar que a pesar de que en la planilla de cálculo se haya formateado un campo para presentarlo como fecha, sigue siendo un valor numérico, por lo que el driver devuelve a O3 un número y no una fecha.
Es necesario definir un campo virtual que transforme dicho valor numérico en una fecha. Para ello se deben seguir los siguientes pasos:
- El campo definido en la fuente de datos correspondiente a la fecha, debe ser declarado de tipo "Integer". Sea valor_fecha dicho campo
- Se debe definir un campo virtual, de tipo "Date", de nombre fecha_vf con la siguiente expresión: SumarDia(Fecha(1,1,1900),valor_fecha)
- Definir la dimensión de tipo fecha, asociando el virtual fecha_vf
En este caso, el campo debe ser leído como un entero.
Info
Nuevo driver para acceder a fuentes Excel.