Das LibreOffice-Forum braucht Eure HILFE und sagt DANKE!

Die Dateninhalte konnten nicht geladen werden

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
debrequ
Beiträge: 33
Registriert: Di 29. Nov 2016, 18:33

Die Dateninhalte konnten nicht geladen werden

Beitrag von debrequ » Mi 8. Jan 2020, 15:33

firebird_sdbc error:
*Dynamic SQL Error
*SQL error code = -104
*Token unknown - line 1, column 118
*YEAR
caused by
'isc_dsql_prepare'

Diese Fehlermeldung erhielt ich nach dem Aufruf dieser Abfrage:

SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", YEAR( "GebDatum" ) AS "GebJahr", MONTH( "GebDatum" ) AS "GebMonat", DAY( "GebDatum" ) AS "GebTag", YEAR( NOW( ) ) - YEAR( "GebDatum" ) AS "Alter" FROM "Mitglieder" WHERE ( "Austritt" IS NULL OR "Austritt" = YEAR( NOW( ) ) || '-12-31' ) AND MOD( ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ), 10 ) = 0 ORDER BY ( YEAR( NOW( ) ) - YEAR( "GebDatum" ) ) ASC

Mit dieser Abfrage möchte ich die Mitglieder, die dieses Jahr einen runden Geburtstag feiern, herausfiltern.

Was ist an der Abfrage falsch? 2019 lief sie noch.
Gruß
debrequ

RobertG
Beiträge: 2046
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Die Dateninhalte konnten nicht geladen werden

Beitrag von RobertG » Mi 8. Jan 2020, 16:53

Hallo debrequ,

wenn die Abfrage 2019 noch lief, dann hast Du zu der Zeit noch die HSQLDB genutzt. Die Fehlermeldung kommt von Firebird, das den Begriff YEAR (und danach auch MONTH und DAY und NOW() und ???) nicht kennt.

Eine Ersetzungstabelle findest Du hier:
https://www.familiegrosskopf.de/robert/ ... _migration

YEAR(date) wird zu EXTRACT(YEAR FROM datetime) - wobei datetime eben heoißt, dass das auch ein Datums- und Zeitangabe (Timestamp) sein kann. Schreibe also EXTRACT(YEAR FROM "GebDatum"). Entsprechend weiter mit MONTH und DAY. Und NOW() ersetzt Du durch CURRENT_TIMESTAMP.

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

debrequ
Beiträge: 33
Registriert: Di 29. Nov 2016, 18:33

Re: Die Dateninhalte konnten nicht geladen werden

Beitrag von debrequ » Mi 8. Jan 2020, 17:52

Hallo Robert,

zunächst herzlichen Dank für Deine Hilfe.

ich habe geglaubt alles nach Deiner Anweisung gemacht zu haben, aber es funktioniert noch nicht. Jetzt habe ich diese Meldung bekommen:

SQL-Status: HY000
Fehlercode: 1000

Syntaxfehler im SQL-Ausdruck

Die SQL-Anweisung sieht jetzt so aus:

SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", EXTRACT(YEAR FROM „GebDatum“) AS "GebJahr", EXTRACT(MONTH FROM „GebDatum“) AS "GebMonat", EXTRACT(DAY FROM „GebDatum“) AS "GebTag", YEAR(CURRENT_TIMESTAMP) - YEAR( "GebDatum" ) AS "Alter" FROM "Mitglieder" WHERE ( "Austritt" IS NULL OR "Austritt" = YEAR CURRENT_TIMESTAMP || '-12-31' ) AND MOD( ( YEAR(CURRENT_TIMESTAMP) - YEAR( "GebDatum" ) ), 10 ) = 0 ORDER BY ( YEAR(CURRENT_TIMESTAMP) - YEAR( "GebDatum" ) ) ASC

Was habe ich falsch gemacht?

Geh bitte davon aus, dass ich keine Ahnung habe. Die SQL-Anweisung habe ich mal mit Eurer Hilfe zusammen gebastelt.
Gruß
debrequ

RobertG
Beiträge: 2046
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Die Dateninhalte konnten nicht geladen werden

Beitrag von RobertG » Mi 8. Jan 2020, 20:40

Hallo debrequ,

stimmt der Code, den Du da postest? Da sind doppelte Anführungszeichen unten drin.
YEAR(CURRENT_TIMESTAMP) - YEAR( "GebDatum" )
darf natürlich auch nicht sein. Und das Ganze steht dort noch mehrere male in etwas abgewandelter Form.
EXTRACT(YEAR FROM CURRENT_TIMESTAMP) ...
Die Funktionen YEAR, DAY oder MONTH sind Firebird unbekannt.

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

debrequ
Beiträge: 33
Registriert: Di 29. Nov 2016, 18:33

Re: Die Dateninhalte konnten nicht geladen werden

Beitrag von debrequ » Fr 10. Jan 2020, 18:54

Hallo Robert,

ich war durch eine Erkältung 3 Tage außer Gefecht, deshalb heute erst meine Reaktion.
RobertG hat geschrieben:
Mi 8. Jan 2020, 20:40
stimmt der Code, den Du da postest?
Nein, sonst würde die Abfrage ja laufen. :lol:

Ich glaube ich portiere die Datensätze in eine Calc-Tabelle und filtere mir dann die gewünschten raus.
Die SQL Anweisung ist mir zu kompliziert.

Danke für Deine Hilfe
Gruß
debrequ

RobertG
Beiträge: 2046
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Die Dateninhalte konnten nicht geladen werden

Beitrag von RobertG » Fr 10. Jan 2020, 19:26

Code: Alles auswählen

SELECT "ID", "Mitgliedsnummer", "Geschl", "Name", "VName", "ZWort", "Straße", "PLZ", "Ort", "GebDatum", "Austritt", 
EXTRACT(YEAR FROM "GebDatum") AS "GebJahr", 
EXTRACT(MONTH FROM "GebDatum") AS "GebMonat", 
EXTRACT(DAY FROM "GebDatum") AS "GebTag", 
EXTRACT(YEAR FROM CURRENT_TIMESTAMP) - EXTRACT(YEAR FROM "GebDatum" ) AS "Alter" 
FROM "Mitglieder" WHERE 
( "Austritt" IS NULL OR "Austritt" = EXTRACT(YEAR FROM CURRENT_TIMESTAMP) || '-12-31' ) 
AND MOD( ( EXTRACT(YEAR FROM CURRENT_TIMESTAMP) - EXTRACT(YEAR FROM "GebDatum" ) ), 10 ) = 0 
ORDER BY ( EXTRACT(YEAR FROM CURRENT_TIMESTAMP) - EXTRACT(YEAR FROM "GebDatum" ) ) ASC
Grundsätzlich: Wenn von einer Datenbankengine zu einer anderen gewechselt wird kommen immer wieder Abfragen vor, die angepasst werden müssen. Die obige dürfte jetzt (vermutlich) auch unter Firebird laufen.

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

debrequ
Beiträge: 33
Registriert: Di 29. Nov 2016, 18:33

Re: Die Dateninhalte konnten nicht geladen werden

Beitrag von debrequ » So 12. Jan 2020, 16:00

Hallo Robert,

vielen Dank für Deine Unterstützung, die Abfrage läuft voll umfänglich.
Gruß
debrequ

Antworten