4 / 4
Dec 2024

Ich erhalte seit kurzem die Fehlermeldung :

Datenbank Fehler

Invalid SQL: (SELECT egw_cal_repeats.recur_type,egw_cal_repeats.recur_interval,egw_cal_repeats.recur_data,range_end - 1 AS recur_enddate,egw_cal.cal_id,cal_uid,cal_owner,cal_category,cal_modified,cal_priority,cal_public,cal_title,cal_description,cal_location,cal_reference,cal_modifier,cal_non_blocking,cal_special,cal_etag,cal_creator,cal_created,cal_recurrence,tz_id,cal_deleted,caldav_name,range_start,range_end,cal_start,cal_end,egw_cal_user.cal_recur_date,NULL AS participants,NULL AS icons FROM (SELECT * FROM egw_cal WHERE cal_deleted IS NULL AND range_start<1736117999 AND (range_end IS NULL OR range_end>1734303600)) egw_cal JOIN egw_cal_dates ON egw_cal.cal_id=egw_cal_dates.cal_id JOIN egw_cal_user ON egw_cal.cal_id=egw_cal_user.cal_id LEFT JOIN egw_cal_repeats ON egw_cal.cal_id=egw_cal_repeats.cal_id WHERE cal_deleted IS NULL AND egw_cal_user.cal_status NOT IN (‘X’,‘E’) AND 1734303600 < cal_end AND 1736117999 > cal_start AND egw_cal_user.cal_user_type=‘u’ AND egw_cal_user.cal_user_id IN (‘999’,’-2’,’-1’) AND recur_type IS NULL AND egw_cal_user.cal_recur_date=0)
UNION
(SELECT egw_cal_repeats.recur_type,egw_cal_repeats.recur_interval,egw_cal_repeats.recur_data,range_end - 1 AS recur_enddate,egw_cal.cal_id,cal_uid,cal_owner,cal_category,cal_modified,cal_priority,cal_public,cal_title,cal_description,cal_location,cal_reference,cal_modifier,cal_non_blocking,cal_special,cal_etag,cal_creator,cal_created,cal_recurrence,tz_id,cal_deleted,caldav_name,range_start,range_end,cal_start,cal_end,egw_cal_user.cal_recur_date,NULL AS participants,NULL AS icons FROM (SELECT * FROM egw_cal WHERE cal_deleted IS NULL AND range_start<1736117999 AND (range_end IS NULL OR range_end>1734303600)) egw_cal JOIN egw_cal_dates ON egw_cal.cal_id=egw_cal_dates.cal_id JOIN egw_cal_user ON egw_cal.cal_id=egw_cal_user.cal_id LEFT JOIN egw_cal_repeats ON egw_cal.cal_id=egw_cal_repeats.cal_id WHERE cal_deleted IS NULL AND egw_cal_user.cal_status NOT IN (‘X’,‘E’) AND 1734303600 < cal_end AND 1736117999 > cal_start AND egw_cal_user.cal_user_type=‘u’ AND egw_cal_user.cal_user_id IN (‘999’,’-2’,’-1’) AND egw_cal_user.cal_recur_date=cal_start)
ORDER BY recure ASC, cal_non_blocking DESC
Unknown column ‘recure’ in ‘ORDER BY’ (1054)

/usr/share/egroupware/api/src/Db.php (861)

Hat jemand eine Idee was da falsch läuft und wie man es ggfs. behebt ?

Grüße
Thomas

  • created

    Dec '24
  • last reply

    Dec '24
  • 3

    replies

  • 138

    views

  • 2

    users

Hallo Thomas,

das ist ein echt kurioser Fehler :wink:

Es gibt seit vielen Jahren die einschaltbare Spalte “Wiederholung” in der Listenansicht des Kalenders, und die hat eine Spaltenüberschrift über die man danach sortieren kann, was dann allerdings genau passieren soll, ist nirgendwo definiert und gibt deshalb diesen SQL Fehler.

Falls Du die Ansicht noch offen hast, kannst Du auf eine andere Spalte / Sortierung klicken und alles ist wieder gut.

Falls nicht wird es etwas komplizierter:

  1. Deine bzw. die account_id des betroffenen Benutzers herausfinden, geht zum Beispiel über die ID Spalte im Admin, die man einschalten kann (falls Du da wegen dem SQL Fehler nicht hinkommst, einfach die URL im Browser mal auf https://meine.egroupware/egroupware/admin/ (meine.egroupware entsprechend ersetzen) ändern
  2. den betroffenen Benutzer abmelden
  3. in der DB das folgende SQL ausführen, um die Kalender Einstellungen zu löschen (dabei gehen auch die Favoriten verloren!). Dabei muss $account_id mit der in 1. herausgefunden ID ersetzt werden:
DELETE FROM egw_preferences WHERE preference_owner=$account_id AND preference_app='calendar'
  1. Als Admin oder im Setup den Cache löschen, oder den Docker Container neu starten BEVOR sich der Benutzer wieder anmeldet.

Ich werde das Sortieren nach der (nicht existenten Spalte) jetzt einfach ausbauen.

Ralf

Hallo Ralf,
danke für die Aufklärung ! Bisher tauchte der Fehler auch nicht auf, keine Ahnung wieso ausgerechnet jetzt.
Was mir auffällt ist, das in dem SQL Statement alles was mit Wiederholungen zu tun hat auf ‘recur’ lautet, aber das ORDER BY ‘recure’ enthält. Ist da ggfs einfach ein ‘e’ zuviel ?

Wie auch immer, seit (für mich) neuesten ist in der Spalte “Wiederholung”, die ich sehr gerne verwende, weil ich mit wöchentlich wiederholenden Terminen arbeite jede Ausnahme zu sehen.

Das macht die Übersicht für mich nahezu unbrauchbar. Kann man das irgendwo abstellen und ich sehe es nur wieder nicht ?

Grüße und danke für die schnelle Antwort
Thomas

Der Termin hat halt sehr viele Ausnahmen, die unter Wiederholung, wie auch die Regel der Wiederholung angezeigt werden.

Um sinnvollsten wäre, hier einen maximale Höhe der Zeile zu definieren, und wenn es so viele Wiederholungen sind / der Inhalt größer/höher als die Zeile ist einen Scrollbalken anzuzeigen.

Auch solche Sachen können über ein Supportbudget (kurzfristig) behoben werden …

Ralf