🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Markierfeldwerte werden falsch ausgelesen
Markierfeldwerte werden falsch ausgelesen
Ich habe eine Abfrage per sql-Statement im Makro auf eine Artikeltabelle zum Auslesen der Artikelwerte geschrieben.
Bei Ausführung wird mir für die 4 Markierfelder in der Zeile immer der Wert '0' zurückgegeben, gleichgültig, ob eine 1 oder eine 0 tatsächlich in der Tabelle steht. Alle anderen Daten, wie z.B. ArtikelNr, Artikelbeschreiung, -Preis usw. werden korrekt den dafür vorgesehenen Variablen übergeben. Ich greife mit
iresult.next und get.int (habe auch get.short probiert) auf das Abfrageergebnis zu.
Was mache ich da falsch?
Viele Grüße
Mani
Bei Ausführung wird mir für die 4 Markierfelder in der Zeile immer der Wert '0' zurückgegeben, gleichgültig, ob eine 1 oder eine 0 tatsächlich in der Tabelle steht. Alle anderen Daten, wie z.B. ArtikelNr, Artikelbeschreiung, -Preis usw. werden korrekt den dafür vorgesehenen Variablen übergeben. Ich greife mit
iresult.next und get.int (habe auch get.short probiert) auf das Abfrageergebnis zu.
Was mache ich da falsch?
Viele Grüße
Mani
Re: Markierfeldwerte werden falsch ausgelesen
Moin,
welchen Datentyp haben denn die Spalten der zugrundeliegenden Tabelle? Boolean?
Versuche es mit
Auf keinen Fall gehtwenn, dann...usw.
Gruß R
welchen Datentyp haben denn die Spalten der zugrundeliegenden Tabelle? Boolean?
Versuche es mit
Code: Alles auswählen
.getboolean
Code: Alles auswählen
get.int
Code: Alles auswählen
.getint()
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Markierfeldwerte werden falsch ausgelesen
Hallo R.,
danke für Deine Reaktion.
In der Tabelle haben die Felder den "Bit"-Typ, also 0 oder 1.
boolean habe ich auch schon ausprobiert, kommt "false", obwohl im Feld eine "1" steht.
.getint(), .getshort() und die anderen möglichen Typen habe ich ausprobiert, kommt als Ergebnis immer die 0 oder false, jedenfalls nicht der Wert, der im Feld steht. Die gleiche sql-Abfrage direkt in der Datenbank eingegeben liefert die richtigen Ergebnisse.
Gruß
Mani
danke für Deine Reaktion.
In der Tabelle haben die Felder den "Bit"-Typ, also 0 oder 1.
boolean habe ich auch schon ausprobiert, kommt "false", obwohl im Feld eine "1" steht.
.getint(), .getshort() und die anderen möglichen Typen habe ich ausprobiert, kommt als Ergebnis immer die 0 oder false, jedenfalls nicht der Wert, der im Feld steht. Die gleiche sql-Abfrage direkt in der Datenbank eingegeben liefert die richtigen Ergebnisse.
Gruß
Mani
Re: Markierfeldwerte werden falsch ausgelesen
Moin,
habe gerade keinen Rechner, denke aber, dass es daran liegen könnte. Nimm doch mal boolean als Datentyp.
Gruß R
habe gerade keinen Rechner, denke aber, dass es daran liegen könnte. Nimm doch mal boolean als Datentyp.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Markierfeldwerte werden falsch ausgelesen
Hallo Mani,
ich habe das gerade getestet und kann das für die MariaDB nachvollziehen. In Tabellen, Abfragen und Formularen klappt es mit der bit-Variablen. Starte ich aber eine Abfrage über Extras → SQL, dann kommt da statt der Inhalte für die bit-Variable ein leeres Feld. Gleiches gilt für Macros.
Die Botschaft, dass es sich um Ja bzw. Nein handelt scheint dennoch über zu kommen. Das zeigen ja schon Tabellen, Abfragen und Formulare.
Ich habe einmal die folgende Abfrage erstellt:
Die ergibt auch über Extras → SQL und über die Abfrage in Makros (mit getString oder getInt) '0' und '1' bzw mit getBoolean False und True.
Kommt natürlich gleich ins zukünftige Handbuch 7.6 - Kapitel MySQL/MariaDB, da das kein besonderes Kennzeichen der Makrobehandlung ist.
Ich habe das als Bug für die direkte Verbindung zur MariaDB weiter gegeben:
https://bugs.documentfoundation.org/sho ... ?id=153317
Taucht bei der JDBC-Verbindung nicht auf.
Gruß
Robert
ich habe das gerade getestet und kann das für die MariaDB nachvollziehen. In Tabellen, Abfragen und Formularen klappt es mit der bit-Variablen. Starte ich aber eine Abfrage über Extras → SQL, dann kommt da statt der Inhalte für die bit-Variable ein leeres Feld. Gleiches gilt für Macros.
Die Botschaft, dass es sich um Ja bzw. Nein handelt scheint dennoch über zu kommen. Das zeigen ja schon Tabellen, Abfragen und Formulare.
Ich habe einmal die folgende Abfrage erstellt:
Code: Alles auswählen
SELECT CASE WHEN `Bool` THEN 1 ELSE 0 END FROM `test`.`tbl_Wert`
Kommt natürlich gleich ins zukünftige Handbuch 7.6 - Kapitel MySQL/MariaDB, da das kein besonderes Kennzeichen der Makrobehandlung ist.
Ich habe das als Bug für die direkte Verbindung zur MariaDB weiter gegeben:
https://bugs.documentfoundation.org/sho ... ?id=153317
Taucht bei der JDBC-Verbindung nicht auf.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Markierfeldwerte werden falsch ausgelesen
Hallo Robert,
erneut danke, mit dem work-around klappt es tatsächlich, wäre ich nie drauf gekommen.
Viele Grüße
Mani
erneut danke, mit dem work-around klappt es tatsächlich, wäre ich nie drauf gekommen.
Viele Grüße
Mani
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.