Seite 1 von 1

Formular mit 4 statt 3 Suchworten geht nicht?

Verfasst: Fr 1. Mai 2026, 11:19
von Pit Zyclade
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!