Bug 164433 - FIREBIRD: AutoValue shows 0 when connected to server with ODBC or JDBC connection
Summary: FIREBIRD: AutoValue shows 0 when connected to server with ODBC or JDBC connec...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
Version:
(earliest affected)
24.8.3.2 release
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Database-Firebird-Default
  Show dependency treegraph
 
Reported: 2024-12-23 07:49 UTC by Robert Großkopf
Modified: 2024-12-24 08:45 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Großkopf 2024-12-23 07:49:22 UTC
For this bug you will need a running Firebird server 3. Should be version '3', because you could use Firebird files, created with LibreOffice Base, for this server type.
Connect to the database of the sever by direct connection (Firebird). Here a simple connection string on OpenSUSE (path for Firebird) and connected to libretest.fdb:
localhost:/srv/firebird/libretest.fdb
Create a table with autovalue, if it hasn't been created.
Put some data into table.
AutoValue will be created, could be seen directly after input. Also <AutoValue> appears in a new row.
Driver of LO is only created for one connection to a database field. So you couldn't connect from another client and open the same table. Using internal Firebird driver for more than one client won't work.
So we tested ODBC and JDBC.
Opened the table in ODBC and JDBC give the same result:
New values for primary key are all shown as '0'.
Reloading the table shows: All keys are created well, but aren't shown directly.
<AutoValue> wont be shown in row for new entries.

This bug is a big problem for connecting forms and subforms. Connecting by a key value of the mainform, created by AutoValue, will try to save the content of the subform with foreign key '0', which doesn't really exist.

Note:
INSERT INTO "tbl_Test1" ("Name") Values('Robert') RETURNING "ID"
will return a value for "ID", if it will run in macro code. So there is a possibility to get the value. But at this moment I have to reload the form to get the right value.

Version: 24.8.4.2 (X86_64) / LibreOffice Community
Build ID: bb3cfa12c7b1bf994ecc5649a80400d06cd71002
CPU threads: 6; OS: Linux 6.4; UI render: default; VCL: kf5 (cairo+xcb)
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Calc: threaded
Comment 1 jcsanz 2024-12-23 18:44:24 UTC
I can confirm this bug.
I've also tested in a Firebird 5 server

-----------
Version: 24.8.4.2 (X86_64) / LibreOffice Community
Build ID: bb3cfa12c7b1bf994ecc5649a80400d06cd71002
CPU threads: 16; OS: Windows 11 X86_64 (10.0 build 22631); UI render: Skia/Raster; VCL: win
Locale: es-ES (es_ES); UI: es-ES
Calc: CL threaded
Comment 2 jcsanz 2024-12-23 18:49:10 UTC
(In reply to Robert Großkopf from comment #0)

> Driver of LO is only created for one connection to a database field. So you
> couldn't connect from another client and open the same table. Using internal
> Firebird driver for more than one client won't work.
Do you know why or is it documented? or simply you know it because you have tested?
Comment 3 Robert Großkopf 2024-12-23 19:39:50 UTC
(In reply to jcsanz from comment #2)
> (In reply to Robert Großkopf from comment #0)
> 
> > Driver of LO is only created for one connection to a database field. So you
> > couldn't connect from another client and open the same table. Using internal
> > Firebird driver for more than one client won't work.
> Do you know why or is it documented? or simply you know it because you have
> tested?

Have only tested this: 2 Clients trying to connect to Firebird server with direct connection. Second client couldn't open the same table as first client has been opened. It hangs there up to the moment the first Base file has been closed and LO of first client has been closed.