Base setzt TIME-Feld immer auf 00:00:00

Hallo,
ich benutze die aktuelle LibreOffice Version (Windows x64) sowie mariadb-10.4.8-winx64.
Egal ob ich in der Tabellenansicht oder in der Formularansicht versuche eine Uhrzeit zu schreiben, es funktioniert nicht.
Base macht immer 00:00:00 draus.
Was mache ich falsch?

Hier ein Bild

Bildbeschreibung

Es wir tatsächlich 00:00:00 in die Tabelle geschrieben. Dieser HeidiSQL Ausschnitt zeigt das:

Bildbeschreibung

Von HeidiSQL aus kann ich übrigens ganz normal mit der Tabelle arbeiten, die Zeiten werden korrekt geschrieben und angezeigt.

Habe mit Wireshark mal geschaut was Base für einen query sendet:

Statement: INSERT INTO “test”.“timetest” ( “Zeit”) VALUES ( ?)

Nachtrag 06.11.19: Ein Test

Betriebssysteme: Windows 10 Pro und MX Linux Version 19 x64 (VM)

Datenbank: MariaDB 10.4.8 wie gehabt auf Windows 10 Pro

LO-Version Windows: 6.3.3.2 (x64)

LO-Version Linux: 6.3.3.2 (x64)

Ergebnis:

Unter Linux funktioniert Base einwandfrei mit MariaDB.

Die Windows Version von Base verhält sich leider immer noch fehlerhaft.

Hallo - ich bin gespannt, ob mit dieser Frage jemand ohne Kenntnis der Tabellendefinition des TIME-Feldes Deiner MariaDB Datenbanktabelle und Deinem Formular etwas Konkretes anfangen kann (es sei denn, er hatte exakt dasselbe Problem). Für mich jedenfalls sieht das Ganze nach einem typischen impliziten Text → Zahl Konvertierungsproblem aus (“Interpretiere Text als 0 (Null)”). Soweit ich MariaDB verstanden habe, speichert diese eine TIME tatsächlich im Format hh:mm:ss, was aber für Base keine Zeit ist, da im ODF spezifiziert ist, dass eine Zeit ein Bruchteil eines Tages und damit eine Dezimalzahl ist. Damit muss Base eine Zeichenkette hh:mm:ss als Text interpretieren und das wäre dann ggfs. eine 0 (was in ODF der Zeit 00:00:00 entspräche). Aber ohne Kenntnis, was Du genau machst, ist das alles eigentlich Spekulation.

Bitte spezifiziere daher genauer was “Base macht immer 00:00:00 draus” bedeutet? Wann geschieht diese Konvertierung?

Die Bilder helfen relativ wenig, da sie nichts über die Typendeklaration der Felder in der DB aussagen. Zumindest aber ist schon mal klar dass in der DB dann schon 00:00:00 drin steht und die Konvertierung (wenn denn) schon beim Schreiben erfolgt. Schreib’ mal in Base bitte zu Testzwecken ein 0,5 in das Feld. Steht dann in der Datenbank 12:00:00 drin, ist es ein Konvertierungsproblem, wie oben beschrieben,

INSERT INTO “test”.“timetest” ( “Zeit”) VALUES ( ?)

Da steht ja nichts!

Schreib’ mal in Base bitte zu Testzwecken ein 0,5 in das Feld. Steht dann in der Datenbank 12:00:00 drin, ist es ein Konvertierungsproblem, wie oben beschrieben,

Es bleibt bei 00:00:00

**INSERT INTO "test"."timetest" ( "Zeit") VALUES ( ?)

Da steht ja nichts!**

Ich kenne das mariaDB Protokol nicht, aber es sieht so aus als würden die Zeitwerte als Bindungvariablen übergeben.

Ist nur eine Vermutung, ich komme aus der PgSQL-Welt.

MySQL und auch MariaDB funktionieren beide über den Eintrag 19:22:00. Muss korrekt sein.

Was bisher fehlt ist, wie denn die Verbindung zur MariaDB zustande kommt: Direkt (welche LO-Version?), JDBC (welcher Treiber genau) oder ODBC (Verbindungsparameter). Ohne diese Informationen ist das Ganze nicht nachvollziehbar.

Ich habe das hier mit OpenSUSE 15, LO 6.3.3.2 und allen 3 Verbindungsvarianten durch getestet und kein Fehlverhalten feststellen können. Die Zeiten werden, wie gewünscht, gespeichert.

Hi RoberG, ich habe die direkte Verbindung zu MySQL gewählt.

 Direkt (welche LO-Version?),

Sorry, da wirst du mir etwas helfen müssen.:frowning:

Ich bin ganz neu mit MySQL/MariaDB unterwegs.

LO-Version: Erst seit der Version LO 6.2 liefert LibreOffice überhaupt einen direkten Treiber mit, der anfangs noch recht hakelig lief. Tabellen konnten z.B. gar nicht mit Inhalt (über die GUI) gefüllt werden.

Es könnte natürlich sein, dass da ein Unterschied zwischen Windows und Linux im Spiel ist. Ich habe mit der 64bit-rpm-Version beim direkten Treiber und LO 6.3.3.2 keine Probleme gehabt, Zeiten einzugeben und angezeigt zu bekommen.

Ich probiere das morgen mal mit Linux(VM).

Auf jeden Fall mit Windows10, Lo Version: 6.3.3.2 (x64) sowie mariadb-10.4.8-winx64 ist nichts zu machen.

Ich hab das ganze auch nochmal mit HeidiSQL Konsole und GUI ausprobiert…keine Problem.
Also an falsch konfigurierter Datenbank liegt das wohl eher nicht.

Habe meinem Beitrag einen kleinen Test hinzugefügt.

Bevor wir jetzt eine Bugmeldung aufmachen: Du hast unter Windows nicht (von früheren Versionen) die Extension für die direkte Verbindung installiert? Gab es ja auch, nur sollte die in den neueren LO-Versionen nicht mehr genutzt werden.

@RobertG:
Habe LO vor dem Test sogar neu heruntergeladen und neu installiert.
Das scheint schon ein Bug in der aktuellen Windows Version zu sein.
Läge es an der DB würde die LO Linux Version ja auch nicht funktionieren.

Benutzt hier denn niemand anders Windows 10 mit LibreOffice und MariaDB?

Falls du den Bug melden möchtest, kann ich hier gerne mehr Informationen zu meinem System/Rechner posten.

Aber erstmal abwarten, sobald irgendwann diese Nacht oder hoffentlich heute Abend mein Windows10 USB-Stick fertig ist, installiere ich Win10 morgen mal auf einem anderen Rechner und teste.

Die persönlichen Einstellungen vorhergehender Versionen werden bei der Neuinstallation nicht überschrieben. Wenn Du also irgendwann einmal die Extension installiert hast, dann bleibt die da auch - trotz Neuinstallation.

Puuhh, Win10 auf einem alten IntelAtom und langsamer Festplatte aufzuspielen war jetzt wirklich eine Geduldsprobe. Aber egal, ich habs geschafft und dort auch LO und Maria DB installiert. Versionen und x64 Architektur bleibt alles wie gehabt.

Ergebnis: Keine Änderung!

Es kann also nur ein Bug in der Windows(x64)-Version sein.

Damit das ganze hier jetzt nicht ganz untergeht, veröffentliche ich mein letztes Kommentar hier als Antwort.

Puuhh, Win10 auf einem alten IntelAtom und langsamer Festplatte aufzuspielen war jetzt wirklich eine Geduldsprobe. Aber egal, ich habs geschafft und dort auch LO und Maria DB installiert. Versionen und x64 Architektur bleibt alles wie gehabt.

Ergebnis: Keine Änderung!

Es kann also nur ein Bug in der Windows(x64)-Version sein.

Ich habe den Bug jetzt gemeldet. Müsste allerdings noch jemand mit Windows-System bestätigen:
Bug 128698

Der Bug wurde bestätigt - auch für MAC. Allerdings mit einem besonderen Phänomen: Wenn die Tabelle bearbeitet und das Zeitfeld umbenannt wurde war plötzlich eine Eingabe möglich. Mal sehen, was das ergibt.

Danke für Deine Mühe!