🍀 Bitte helfen Sie dabei, unser LibreOffice Forum zu erhalten! 🍀
❤️ Spendenkampagne für das neue Jahr 2026 startet jetzt. ❤️
>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig ihr Wissen teilen.<<
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen Dank!

❤️ DANKE >> << DANKE ❤️

🤗 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) 2377 mal betrachtet

mikele
* LO-Experte *
Beiträge: 2003
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: 2003
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: 2003
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: 2003
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