如何使用 Open Office Base 创建更新查询?

Posted

技术标签:

【中文标题】如何使用 Open Office Base 创建更新查询?【英文标题】:How to create an update query with Open Office Base? 【发布时间】:2016-01-01 21:25:17 【问题描述】:

我想在 Open Office Base 上创建一个更新查询(与 Ms ACCESS 相同)。

【问题讨论】:

【参考方案1】:

Base 通常不使用update queries(但见下文)。相反,执行更新命令的最简单方法是转到工具 -> SQL。输入类似以下内容,然后按Execute

UPDATE "Table1" SET "Value" = 'BBB' WHERE ID = 0

另一种方法是使用宏运行命令。下面是一个使用 Basic 的示例:

Sub UpdateSQL
    REM Run an SQL command on a table in LibreOffice Base
    Context = CreateUnoService("com.sun.star.sdb.DatabaseContext")
    databaseURLOrRegisteredName = "file:///C:/Users/JimStandard/Desktop/New Database.odb"
    Db = Context.getByName(databaseURLOrRegisteredName )
    Conn = Db.getConnection("","") 'username & password pair - HSQL default blank

    Stmt = Conn.createStatement()
    'strSQL = "INSERT INTO ""Table1"" (ID,""Value"") VALUES (3,'DDD')"
    strSQL = "UPDATE ""Table1"" SET ""Value"" = 'CCC' WHERE ID = 0"
    Stmt.executeUpdate(strSQL)

    Conn.close()
End Sub

请注意,也可以使用表单或直接编辑表格来修改数据。

在某些情况下,可以创建更新查询。我无法让它与默认的内置 HSQLDB 1.8 引擎一起使用,但它可以与 mysql 一起使用。

    在查询部分,Create Query in SQL View 点击工具栏按钮Run SQL Command directly。 输入如下命令:
    update mytable set mycolumn = 'This is some text.' where ID = 59;
    F5 运行查询。

它给出了The data content could not be loaded 的错误,但它仍然执行更新并更改数据。要摆脱错误,命令需要return a value。比如我在MYSQL中创建了这个存储过程:

DELIMITER $$
CREATE PROCEDURE update_val
(
   IN id_in INT,
   IN newval_in VARCHAR(100)
)
BEGIN
    UPDATE test_table SET value = newval_in WHERE id = id_in;
    SELECT id, value FROM test_table WHERE id = id_in;
END
$$
DELIMITER ;

然后 LibreOffice Base 中的这个查询修改了数据而没有给出任何错误:

CALL update_val(2,'HHH')

另见:

https://forum.openoffice.org/en/forum/viewtopic.php?f=5&t=75763 https://forum.openoffice.org/en/forum/viewtopic.php?f=61&t=6655 https://ask.libreoffice.org/en/question/32700/how-to-create-an-update-query-in-base-sql/ Modifying table entries from LibreOffice Base, possible?

【讨论】:

这项工作,非常感谢您花时间解决我的问题

以上是关于如何使用 Open Office Base 创建更新查询?的主要内容,如果未能解决你的问题,请参考以下文章

[Libre|Open]Office 中当前文档的路径

使用 Java 获取 Open Office 中的工作表数

如何操作 Office Open XML 格式文档

如何更改使用 Open Office 打开的默认文件?

如何阅读 Open Office 电子表格?

Office Open XML SDK 换词