使用 MySQL 表加入 LibreOffice 基表的建议

Posted

技术标签:

【中文标题】使用 MySQL 表加入 LibreOffice 基表的建议【英文标题】:Advice to join LibreOffice Base Table with a MySQL Table 【发布时间】:2014-05-02 06:44:35 【问题描述】:

我的情况如下: 公司网络将两个不同办公室的两个数据库连接在一起。其中一个数据库是 mysql,它保存可以更改的数据,但字段类型永远不会更改。这是整个公司都可以访问的标准信息。第二个数据库是 LibreOffice Base。它保留了额外的变化,包括字段的数量和字段的类型,因为公司可以改变他们对主 MySQL 数据库中产品的额外信息的想法。

我只需要将 MySQL 数据库中的一张表连接到 LO Base 数据库中的一张。这两个表都有一个共同的字段,称为“代码”。目前,我们将 MySQL 中的大量数据手动输入到 LO 中,以使用“报表生成器”制作一个漂亮的报表,其中包含有关产品的所有额外信息。这是非常适得其反的,如果我可以只对这两个表执行连接然后在报表生成器中使用该连接会更容易。这将节省大量时间并且不易出错。

问题是我不知道该怎么做。 LO Base 是一个非常有限的系统,但我只能使用它,因为安全性不允许更多。我在想我需要在计算机上创建另一个 LO Base 数据库并将其连接到 MySQL 数据库,这样我就能够以某种方式将两个 LO Base 文件连接在一起????这是正确的思路吗?我不能只使用 LO 的 ODBC/JDBC/Direct Connect 功能并进行连接吗?

另外,如果我必须制作一个单独的 LO Base 文件,连接会是什么样子?我从来没有像这样在两个文件之间做一个。

第三,是否有可能有一个查询显示我的 LO 基础数据库中不与主数据库连接的所有记录,因为这意味着我输入了错误的“代码”?这个查询需要在 LO Base 中完成,这就是我问的原因。我做了一个非常简单的连接,不会导致 LO 爆炸,但这有点复杂。

【问题讨论】:

【参考方案1】:

不要认为 LibreOffice Base 本身就支持使用不同驱动程序的混合数据源。每个 LibreOffice 数据库仅使用一个连接器/驱动程序,或者使用 HSQLDB 引擎,但不能混合使用。

Python 可用于连接数据库;从 Python 进入 LO 的许多选项在另一个主题/答案 (How to access ODB files in Python 2.7) 中进行了讨论。 Python 可以独立使用,也可以在宏工具下的 LibreOffice 中使用。也可以使用 LibreOffice Basic see API reference 建立连接,但不知道任何代码示例。

Python 也可以使用MySQL Connector。桥接数据库后,最可能的选择是使用 Python SQL 命令将数据移植/插入到一个数据库中,将所有数据传输到同一位置。

【讨论】:

以上是关于使用 MySQL 表加入 LibreOffice 基表的建议的主要内容,如果未能解决你的问题,请参考以下文章

Python UNO(libreoffice):如何为工作表启用自动过滤器

LibreOffice,使用常量作为查询参数

MySQL加入分组没有完美加入

使用 OLE,从 OpenOffice/LibreOffice Calc 文档中删除除第一个以外的所有工作表,而不使用工作表名称

使用 MySQL JSON 字段加入表

在 LibreOffice Calc 中对不同表中的行(“条件副本”)进行分组