BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> 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

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
Beiträge: 2409
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 10: 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
Beiträge: 2409
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 10: AOO, LO Linux Mint: AOO, LO

RobertG
Beiträge: 2732
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 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 ❤️

Antworten