Hallo Experten
Ich habe eine HSQL-DB (base) die ein Formular auf Basis einer Abfrage mit drei Suchworten, die im Ablauf in einer Tabelle "Filter" im ersten Datensatz gespeichert werden und so dann im Formular "gefiltert" angezeigt werden.
Nun wollte ich dies auf 4 Suchworte erweitern. Ich habe die Filtertabelle und das Formular richtig erweitert und die Eingabe der gesuchten Worte in das Formular wird auch korrekt in die Filtertabelle übernommen! Aber das Filterresultat im Formular ist nicht funktionsfähig für das 4 Suchwort.
Natürlich habe ich auch in der Abfrage den SQL-Text erweitert...
Es FUNKTIONIERT mit 3 Suchworten:
SELECT "Edelmetallmünzen"."*" FROM "Edelmetallmünzen"
WHERE
( ( ( LOWER ( "Motiv" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "SucheMotiv" ) FROM "Filter" WHERE "Filter"."ID" = TRUE ), '' ) || '%' ) OR "Motiv" IS NULL ) )
AND
( ( ( LOWER ( "Serie" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "SucheSerie" ) FROM "Filter" WHERE "Filter"."ID" = TRUE ), '' ) || '%' ) OR "Serie" IS NULL ) )
AND
( ( ( LOWER ( "Material" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "SucheMaterial" ) FROM "Filter" WHERE "Filter"."ID" = TRUE ), '' ) || '%' ) OR "Material" IS NULL ) )
ORDER BY "Serie" ASC, "Motiv" ASC, "Material" ASC
Nicht funktioniert mit 4 Suchworten:
SELECT "Edelmetallmünzen"."*" FROM "Edelmetallmünzen" WHERE
( ( ( LOWER ( "Motiv" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "SucheMotiv" ) FROM "Filter" WHERE "Filter"."ID" = TRUE ), '' ) || '%' ) OR "Motiv" IS NULL ) )
AND
( ( ( LOWER ( "Serie" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "SucheSerie" ) FROM "Filter" WHERE "Filter"."ID" = TRUE ), '' ) || '%' ) OR "Serie" IS NULL ) )
AND
( ( ( LOWER ( "Material" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "SucheMaterial" ) FROM "Filter" WHERE "Filter"."ID" = TRUE ), '' ) || '%' ) OR "Material" IS NULL ) )
AND
( ( ( LOWER ( "Von wem" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "SucheVon wem" ) FROM "Filter" WHERE "Filter"."ID" = TRUE ), '' ) || '%' ) OR "Von wem" IS NULL ) )
ORDER BY "Serie" ASC, "Motiv" ASC, "Material" ASC
Fragen:
1. Ist nicht sogar beim funktionierenden Modell jeweils ein Klammerpaar zu viel?
2. Ist das Modell mit 4 Suchworten deshalb nicht funktionierend, weil die SQL-Textkettenlänge überfordert?
3. Sind Fehler enthalten?
Welche Ratschläge können gegeben werden?
Danke für jede Hilfe!

Formular mit 4 statt 3 Suchworten geht nicht?
-
Pit Zyclade
- * LO-Experte *
- Beiträge: 3195
- Registriert: Mo 12. Nov 2012, 16:59
Formular mit 4 statt 3 Suchworten geht nicht?
LO 25.8.6.2 (X86_64) / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Formular mit 4 statt 3 Suchworten geht nicht?
Ich würde zunächst einmal die eine Zeile, die Du hinzugefügt hast, alleine testen. So auf Anhieb kann ich da keinen Fehler finden.
Was meinst Du mit "SQL-Textkettenlänge"? Nur die Länge des Codes? Ich habe hier Abfragen, die nehmen nach Writer kopiert mehrere DINA4-Seiten in Anspruch…
Hast Du eigentlich das * wirklich in doppelte Anführungszeichen gesetzt? Ich kanne das nur ohne Anführungszeichen. Mit den Anführungszeichen wäre das ja wie eine Suche nach einem Feld mit der Bezeichnung "*".
Was meinst Du mit "SQL-Textkettenlänge"? Nur die Länge des Codes? Ich habe hier Abfragen, die nehmen nach Writer kopiert mehrere DINA4-Seiten in Anspruch…
Hast Du eigentlich das * wirklich in doppelte Anführungszeichen gesetzt? Ich kanne das nur ohne Anführungszeichen. Mit den Anführungszeichen wäre das ja wie eine Suche nach einem Feld mit der Bezeichnung "*".
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
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
