🙏 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!🍀

❤️ DANKE >> << DANKE ❤️

>> 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

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
MPs-Con
! Supporter - monatlich !
Beiträge: 14
Registriert: Mi 24. Feb 2021, 15:40

Markierfeldwerte werden falsch ausgelesen

Beitrag von MPs-Con » Mi 1. Feb 2023, 16:53

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

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Markierfeldwerte werden falsch ausgelesen

Beitrag von F3K Total » Mi 1. Feb 2023, 18:53

Moin,
welchen Datentyp haben denn die Spalten der zugrundeliegenden Tabelle? Boolean?
Versuche es mit

Code: Alles auswählen

.getboolean
Auf keinen Fall geht

Code: Alles auswählen

get.int
wenn, dann

Code: Alles auswählen

.getint()
...usw.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

MPs-Con
! Supporter - monatlich !
Beiträge: 14
Registriert: Mi 24. Feb 2021, 15:40

Re: Markierfeldwerte werden falsch ausgelesen

Beitrag von MPs-Con » Mi 1. Feb 2023, 20:18

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

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Markierfeldwerte werden falsch ausgelesen

Beitrag von F3K Total » Mi 1. Feb 2023, 21:55

Moin,
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

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Markierfeldwerte werden falsch ausgelesen

Beitrag von RobertG » Do 2. Feb 2023, 07:48

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:

Code: Alles auswählen

SELECT CASE WHEN `Bool` THEN 1 ELSE 0 END FROM `test`.`tbl_Wert`
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
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

MPs-Con
! Supporter - monatlich !
Beiträge: 14
Registriert: Mi 24. Feb 2021, 15:40

Re: Markierfeldwerte werden falsch ausgelesen

Beitrag von MPs-Con » Do 2. Feb 2023, 13:48

Hallo Robert,
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.



Antworten