尝试使用 UCanAccess 5.0.1 和 Jackcess 打开 Access 97 数据库时出错,邮件与 LibreOffice 合并

问题描述

最近,我参加了一个 IT 考试,有一个关于使用 LibreOffice 和 Linux 操作系统合并邮件的问题,以及作为数据源的 Access 97 数据库。该问题指出,没有连接到可在 Linux 上正常工作的 Access 97 数据库的连接器

在我不得不选择的选项中,其中之一是将 Access 数据导出到 CSV 文件,然后在 LibreOffice 上针对 CSV 文件定义数据源。

一个是直接针对 Access 定义 LibreOffice 数据源。

我有一些过去使用ucanaccess从Access 2000数据库提取一些数据的记忆,所以即使说没有合适的连接器可用,我还是选择了第二个选项,将LibreOffice直接连接到Access。>

显然,正确的答案是导出为 CSV 并使用它。

我很好奇,我从 Office 97 示例中获得了一个 Access 97 数据库名称是(西班牙语)Neptuno.mdb

当我尝试在 ucanaccess 的 console.sh 中打开它时,我得到的是以下内容

    WARNING:UnkNown expression: GenUniqueID() (default value of  column IdProducto table Detalles de pedidos)
    Error occured at the first loading attempt of Cat�logo
    Converted view was :CREATE VIEW "CAT�logo" AS SELECT disTINCT Categor�as.NombreCategor�a,Categor�as.Descripci�n,Categor�as.Imagen,Productos.IdProducto,Productos.NombreProducto,Productos.CantidadPorUnidad,Productos.PrecIoUnidad
    FROM "CATEGOR�AS" INNER JOIN Productos ON Categor�as.IdCategor�a = Productos.IdCategor�a
    WHERE (((Productos.Suspendido)=false))
    Error message was :palabra no esperado: �
    Loaded Tables:
    Categor�as,Clientes,Compa��as de env�os,Empleados,Pedidos,Proveedores,Productos,Detalles de pedidos
    Loaded Queries:
    Detalle de pedidos con descuento,Lista de productos actual,Los diez productos m�s caros,Productos sobre el precio medio,Subtotales por pedido
    Loaded Procedures:
    
    Loaded Indexes:
    Index Unique  on Categor�as Columns: (NombreCategor�a),Primary Key  on Categor�as Columns: (IdCategor�a),Primary Key  on Clientes Columns: (IdCliente),Primary Key  on Compa��as de env�os Columns: (IdCompa��aEnv�os),Primary Key  on Detalles de pedidos Columns: (IdPedido,IdProducto),Primary Key  on Empleados Columns: (IdEmpleado),Primary Key  on Pedidos Columns: (IdPedido),Primary Key  on Productos Columns: (IdProducto),Primary Key  on Proveedores Columns: (IdProveedor),FK on "DETALLES DE PEDIDOS" Columns: (IdPedido)  References PEDIDOS Columns: (IdPedido),FK on "DETALLES DE PEDIDOS" Columns: (IdProducto)  References PRODUCTOS Columns: (IdProducto),FK on PEDIDOS Columns: (IdCliente)  References CLIENTES Columns: (IdCliente),FK on PEDIDOS Columns: (FormaEnv�o)  References "COMPA��AS DE ENV�OS" Columns: (IdCompa��aEnv�os),FK on PEDIDOS Columns: (IdEmpleado)  References EMPLEADOS Columns: (IdEmpleado),FK on PRODUCTOS Columns: (IdCategor�a)  References "CATEGOR�AS" Columns: (IdCategor�a),FK on PRODUCTOS Columns: (IdProveedor)  References PROVEEDORES Columns: (IdProveedor),Index on Clientes Columns: (Ciudad),Index on Clientes Columns: (C�dPostal),Index on Clientes Columns: (NombreCompa��a),Index on Clientes Columns: (Regi�n),Index on Empleados Columns: (Apellidos),Index on Empleados Columns: (C�dPostal),Index on Pedidos Columns: (C�dPostalDestinatario),Index on Pedidos Columns: (FechaEnv�o),Index on Pedidos Columns: (FechaPedido),Index on Productos Columns: (NombreProducto),Index on Proveedores Columns: (C�dPostal),Index on Proveedores Columns: (NombreCompa��a) 
    
    Cannot load view Facturas : palabra no esperado: �
    Cannot load view Lista alfab�tica de productos : palabra no esperado: �
    Cannot load view Resumen de ventas por trimestre : palabra no esperado: �
    Cannot load view Filtro facturas : usuario no tiene privilegios suficientes o objeto no enconTrado: FACTURAS
    Cannot load view Ventas por categor�a para 1995 : palabra no esperado: �
    Cannot load view Pedidos trimestrales por producto : palabra no esperado: #
    Cannot load view Consulta de pedidos : palabra no esperado: �
    Cannot load view Pedidos trimestrales : palabra no esperado: �
    Cannot load view Productos por categor�a : palabra no esperado: �
    Cannot load view Cat�logo : palabra no esperado: �
    Cannot load view Ventas por a�o : usuario no tiene privilegios suficientes o objeto no enconTrado: ParaMETERS
    Cannot load view Clientes y proveedores por ciudad : palabra no esperado: �
    Cannot load view Totales de ventas por cantidad : palabra no esperado: �
    Cannot load view Ventas de empleado por pa�s : usuario no tiene privilegios suficientes o objeto no enconTrado: ParaMETERS
    Cannot load view Ventas por categor�a : palabra no esperado: �
    Cannot load view Ventas de productos para 1995 : palabra no esperado: �
    Cannot load view Resumen de ventas por a�o : palabra no esperado: �
    ucanaccess>
    copyright (c) 2021 marco Amadei
    ucanaccess version 5.0.1
    You are connected!! 
    Type quit to exit 
    
    Commands end with ; 
    
    Use:   
       export [--help] [--bom] [-d ] [-t ] [--big_query_schema ] [--newlines] ;
    for exporting the result set from the last executed query or a specific table into a .csv file

示例数据库经常使用西班牙语字符(ñ、á、é、í、ó、ú 等)。按照这些链接,其中包括

SO link1 SO link2

修改了一些代码片段来创建一个 jar 文件

public class Pruebaucanaccess { public static void main(String[] args) { try { String base = "/home/some_username/access/office97_samples/NEPTUNO.MDB"; java.util.Properties propiedades = new java.util.Properties(); propiedades.put("jackcessOpener","prueba.ucanaccess.Charsetopener"); Connection conn= DriverManager.getConnection(String.format("jdbc:ucanaccess://%s",base),propiedades); try (ResultSet rsMD = conn.getMetaData().getTables(null,null,null)) { while (rsMD.next()) { String tblName = rsMD.getString("TABLE_NAME"); System.out.println(tblName); } } Statement st =conn.createStatement(); ResultSet rs=st.executeQuery("SELECT * FROM Clientes"); while (rs.next()) { System.out.println( rs.getString("NombreCompañía") + "," + rs.getString("NombreContacto") + "," + rs.getString("Dirección") + "," + rs.getString("Ciudad") + "," + rs.getString("CódPostal") + "," + rs.getString("País")); } conn.close(); } catch (sqlException e) { // Todo Auto-generated catch block e.printstacktrace(); } } }

而且我可以看到表名并包含正确拼写(即,没有 ? 字符)。如果我在 LibreOffice 类路径中包含我生成的 jar,并将“;jackcessOpener=prueba.ucanaccess.Charsetopener”添加到 LibreOffice 连接字符串,我设法在 LibreOffice 表和视图中看到拼写正确,并记录。

所以,重点是错误,当我创建一个链接到 mdb 的 odb 文件时也会出现错误,显然,错过加载表

任何人都可以对此有所了解?提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)