🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ 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. 🤗

Laufzeitfehler mit MYSQL

Alles zur Programmierung im LibreOffice.
Antworten
ulihueck
Beiträge: 9
Registriert: Sa 11. Jun 2011, 10:30

Laufzeitfehler mit MYSQL

Beitrag von ulihueck » So 1. Jan 2023, 21:12

Hallo und noch ein gutes und gesundes neues Jahr.
Beim Absetzen eines SQL-Befehls bekomme ich neuerdings einen Laufzeitfehler (siehe Anhang).
Leider finde ich in der Dokumentation und bei Google keine Antwort oder Erklärung.
Hat jemand eine Idee, warum der Fehler verursacht wird?
Setze ich den SQL-Befehl im SQL-Editor ab, gibt es keine Fehlermeldung.
Schon jetzt danke für Eure Hilfe.
Viele Grüße,
Uli
Dateianhänge
Basic-Laufzeitfehler.png
Basic-Laufzeitfehler.png (10.88 KiB) 2001 mal betrachtet

mikele
* LO-Experte *
Beiträge: 1927
Registriert: Mo 1. Aug 2011, 20:51

Re: Laufzeitfehler mit MYSQL

Beitrag von mikele » So 1. Jan 2023, 21:50

Hallo,
da wäre es gut den Sql-Befehl zu kennen und seine Umsetzung in Basic.
Gruß,
mikele

ulihueck
Beiträge: 9
Registriert: Sa 11. Jun 2011, 10:30

Re: Laufzeitfehler mit MYSQL

Beitrag von ulihueck » Mo 2. Jan 2023, 09:44

Hallo Mikele.
Stimmt, habe ich vergessen. Die SQL-Anweisung lautet

Code: Alles auswählen

EvalSQL="SELECT SUM( "Einnahmen"."Betrag" ) "Betrag", "Einnahmen"."Objekt_ID", "Mieter"."Mieter_ID", COUNT( "Einnahmen"."Objekt_ID" ) "Anzahl_Buchungen" ,"Mieter"."Name" FROM "Mieter" "Mieter", "Einnahmen" "Einnahmen" WHERE "Mieter"."Mieter_ID" = "Einnahmen"."Zahlender" AND "Einnahmen"."Datum" > {d '2022-01-01' } AND "Einnahmen"."Datum" < {d '2022-12-31' } AND "Einnahmen"."Kategorie" = 'Nebenkosten' GROUP BY "Einnahmen"."Objekt_ID", "Mieter"."Mieter_ID", "Mieter"."Name" ORDER BY "Einnahmen"."Objekt_ID" ASC"
und wird mit

Code: Alles auswählen

oResultSet   = oQuery.executeQuery(EvalSql)
ausgeführt.
Dann gibt es die Fehlermeldung.

mikele
* LO-Experte *
Beiträge: 1927
Registriert: Mo 1. Aug 2011, 20:51

Re: Laufzeitfehler mit MYSQL

Beitrag von mikele » Mo 2. Jan 2023, 11:09

Hallo,
die inneren Anführungsstriche des SQL-Strings müssen maskiert werden:

Code: Alles auswählen

EvalSQL="SELECT SUM( ""Einnahmen"".""Betrag"" ) ""Betrag"", ""Einnahmen"".""Objekt_ID"", ""Mieter"".""Mieter_ID"", COUNT( ""Einnahmen"".""Objekt_ID"" ) ""Anzahl_Buchungen"" ,""Mieter"".""Name"" FROM ""Mieter"" ""Mieter"", ""Einnahmen"" ""Einnahmen"" WHERE ""Mieter"".""Mieter_ID"" = ""Einnahmen"".""Zahlender"" AND ""Einnahmen"".""Datum"" > {d '2022-01-01' } AND ""Einnahmen"".""Datum"" < {d '2022-12-31' } AND ""Einnahmen"".""Kategorie"" = 'Nebenkosten' GROUP BY ""Einnahmen"".""Objekt_ID"", ""Mieter"".""Mieter_ID"", ""Mieter"".""Name"" ORDER BY ""Einnahmen"".""Objekt_ID"" ASC"
Gruß,
mikele

ulihueck
Beiträge: 9
Registriert: Sa 11. Jun 2011, 10:30

Re: Laufzeitfehler mit MYSQL

Beitrag von ulihueck » Mo 2. Jan 2023, 16:31

Hallo und danke für Deine Antwort.
Ja, das ist es im Programmcode auch. Der Beobachter lieferte mir leider die SQL-Anweisung ohne doppelte Anführungszeichen.

mikele
* LO-Experte *
Beiträge: 1927
Registriert: Mo 1. Aug 2011, 20:51

Re: Laufzeitfehler mit MYSQL

Beitrag von mikele » Mo 2. Jan 2023, 17:52

Hallo,
ich bin etwas verwundert über diesen Teil:

Code: Alles auswählen

""Einnahmen"".""Datum"" > {d '2022-01-01' } AND ""Einnahmen"".""Datum"" < {d '2022-12-31' } 
Kannst du mir die geschweiften Klammern erläutern?
Gruß,
mikele

ulihueck
Beiträge: 9
Registriert: Sa 11. Jun 2011, 10:30

Re: Laufzeitfehler mit MYSQL

Beitrag von ulihueck » Mo 2. Jan 2023, 19:12

Die geschweiften Klammern sind historisch bedingt.
Ich habe die Datenbank letztes Jahr von HSQLDB nach MYSQL portiert. Sie stören nicht. Ich kann den SQL-Befehl im Abfrage-Editor absetzen, ohne eine Fehlermeldung.
Die Klammern werden auch gesetzt, wenn man von der Entwurf-Ansicht zur SQL-Ansicht wechselt.
Ich habe aber einmal die geschweiften Klammern durch normale ersetzt. Die Fehlermeldung bleibt.
Nun habe ich die Abfrage modifiziert und habe nur noch das Jahr als Kriterium.

Code: Alles auswählen

EvalSql="SELECT SUM(""Einnahmen"".""Betrag"" ) ""Betrag"", ""Einnahmen"".""Objekt_ID"", ""Mieter"".""Mieter_ID"", COUNT( ""Einnahmen"".""Objekt_ID"" ) ""Anzahl_Buchungen"" ,""Mieter"".""Name"" FROM ""Mieter"" ""Mieter"", ""Einnahmen"" ""Einnahmen"" WHERE ""Mieter"".""Mieter_ID"" = ""Einnahmen"".""Zahlender"" AND EXTRACT( YEAR FROM `Datum`) = 2021 AND ""Einnahmen"".""Kategorie"" = 'Nebenkosten' GROUP BY ""Einnahmen"".""Objekt_ID"", ""Mieter"".""Mieter_ID"", ""Mieter"".""Name"" ORDER BY ""Einnahmen"".""Objekt_ID"" ASC"
Der Fehler ist noch der gleiche.

mikele
* LO-Experte *
Beiträge: 1927
Registriert: Mo 1. Aug 2011, 20:51

Re: Laufzeitfehler mit MYSQL

Beitrag von mikele » Di 3. Jan 2023, 20:34

Hallo,
funktioniert eine einfachere SQL-Abfrage? Ich würde schrittweise testen, um die Ursache des Fehlers einzugrenzen.
Gruß,
mikele


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