https://bugs.documentfoundation.org/show_bug.cgi?id=156512

--- Comment #6 from [email protected] ---
(In reply to Robert Großkopf from comment #1)
> (In reply to prrvchr from comment #0)
>  
> I don't want to install extension to confirm bugs, because I don't know if
> this will be a bug of the extension or a bug of LO. Please test first with
> internal drivers, then with external databases, which will be connected in
> different ways.

Ok Robert, I followed your recommendations: I installed the following 3 drivers
in Tools -> Options -> LibreOffice -> Advanced -> Class Path...

- hsqldb-2.7.2.jar
- h2-2.2.220.jar
- mariadb-java-client-3.1.4.jar

If I use these three different drivers through LibreOffice's internal JDBC
driver, using a url starting with jdbc:*, I get the following results:

- hsqldb can open and insert a row (which is properly refreshed) in table
created with the jdbcDriverOOo driver.
- h2 can't see the PUBLIC schema and its Table1, and it can't create a table
with autoincrement.
- mariadb can open and insert a row (which is properly refreshed) in table
created with the jdbcDriverOOo driver.

If I use these same three drivers in jdbcDriverOOo version 1.0.3, I get the
following results:

- hsqldb can create a table with autoincrement and insert a row (which is not
properly refreshed).
- h2 can create a table with autoincrement and insert a row (which is not
properly refreshed).
- mariadb can create a table with autoincrement and insert a row (which is
properly refreshed).

>From these different tests, I think we can suspect that the native JDBC driver
of LibreOffice does not offer the com.sun.star.sdbcx.XRowLocate interfaces
necessary for Base in order to use the updatable resultset. I suspect it works
like jdbcDriverOOo does if you disable the use of bookmarks.

On the other hand, if we look carefully at the logs generated by jdbcDriverOOo
then we see that the refreshing of the insets is conditional on the underlying
driver and more precisely on the response it gives to the method:
com.sun.star.sdbc.XResultSet.rowInserted(). I would like to do more tests to
confirm this. As a result, only the positively responding mariadb driver
manages to refresh the newly inserted rows.

We also see that the UNO SDBC API does not follow the recommendations of the
java.sql.ResultSet API and requires me in my transcription to manage the
insertion mode.

I'm afraid few of us are looking to use bookmarks
(com.sun.star.sdbcx.XRowLocate) with Base.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to