BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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 10: 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 10: 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 nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️