Seite 1 von 1

Parameterabfrage aus OpenOffice Base funktioniert in LibreOffice nicht

Verfasst: Do 23. Apr 2020, 16:49
von GerhardtS
Guten Tag zusammen,

ich bin neu hier im Forum. Ich hab vor einiger Zeit angefangen eine Datenbank unter OpenOffice Base zu erstellen.
Allerdings bin ich nach diversen unmotivierten Abstürzen und damit hergehenden Datenverlusten von OpenOffice nun zu LibreOffice gewechselt. Bis jetzt läuft es deutlich stabiler als bisher. System. Windows 10 HOme. Version 1903.

Nun zu meinem Problem: Wenn ich die Datenbank nun mit LibreOffice öffne funktioneren alle bisher angelegten Abfragen, Berichten und Formulare, mit Ausnahme der Parameterabfrage. In OpenOffice erhalte ich die selektierten Datensätze angezeigt. In LibreOffice erhalte ich mit der gleichen Abfrage nur leere Felder, bzw. blitzt manchmal ein Datensatz kurz auf und dann sind die Felder leer. Ich habe die Abfrage auch schon neu erstellt, mit dem gleichen Ergebnis. Die Tabellen enthalten die korrekten Daten und alle anderen Abfrage funktionieren auch.

Wenn ich in der Abfrage bis auf die benötigen Abfragefelder aus der Tabelle alle anderen Bedingungen lösche und nur z.B. im Feld "Apellido" mit :qApellido den Parameter abfrage funktioniert das noch. Wenn ich dann aber den unten stehenden SQL-Code verwenden will wird die Abfrage zwar ausgeführt aber es werden nur leere Felder angezeigt.

Code: Alles auswählen

SELECT "ID", "Apellido", "Nombre", "SIP", "Seguro", "Nivel Prestacion", "Sexo", "Diabetica", "Demencia", "Hipertonia", DATEDIFF( 'yy', "Clientes"."DatNacimiento", CURRENT_DATE ) - CASEWHEN( DAYOFYEAR( "DatNacimiento" ) > DAYOFYEAR( CURDATE( ) ), + 1, 0 ) AS "Edad" FROM "Clientes" WHERE LOWER ( "Apellido" ) LIKE LOWER ( :qApellido || '%' ) AND LOWER ( "Nombre" ) LIKE LOWER ( :qNombre || '%' )
Vielleicht bin ich ja nur zu doof oder seh den Wald vor lauter Bäumen nicht. Das die Syntax bei LibreOffice anders ist kann ich mir nicht wirklich vorstellen, vor allem da die Abfrage ja ausgeführt wird.

Vielen Dank schon mal im Voraus, ich hoffe jemand hat eine Idee und kann mir weiterhelfen.
Gruss
Gerhardt

Re: Parameterabfrage aus OpenOffice Base funktioniert in LibreOffice nicht

Verfasst: Do 23. Apr 2020, 19:16
von RobertG
Hallo Gerhard,

kurz vorher etwas zum Layout: Wenn Du Code eingibst, dann füge doch sinnvolle Zeilenumbrüche ein. So muss sich die Person, die das lesen soll, erst quer durch den Code scrollen.

Zu Deinem Problem aus dem Handbuch:
Wird der Parameter ... leer gelassen, so werden bis LO 4.4 alle Leser angezeigt, da ein leeres Parameterfeld erst ab der Version LO 4.4 auch tatsächlich nicht als leerer Text, sondern als NULL weiter gegeben wird.
Das wird auch alle AOO-Versionen betreffen. Leere Feldeingaben werden eben seit LO 4.4 auch tatsächlich NULL gesetzt und wenn bei Deiner Abfrage ein Parameter leer ist, dann erhältst Du keinen Wert in der Anzeige.
Willst Du dies vermeiden, so kannst Du folgendermaßen vorgehen - wieder Handbuch:
(LOWER ("Leser"."Nachname") LIKE '%' || LOWER (:Lesername) || '%' OR :Lesername IS NULL)
Das könntest Du jetzt auf Deine Abfrage übertragen.

Gruß

Robert

Re: Parameterabfrage aus OpenOffice Base funktioniert in LibreOffice nicht

Verfasst: Fr 24. Apr 2020, 10:04
von GerhardtS
Hallo Robert,

herzlichen Dank, das war es. Hätte ich im nachhinein auch selber drauf kommen können.
Wer lesen kann ist im Vorteil.
Das mit den Zeilenumbrüchen im Code nehmen ich mir, falls noch mal nötig, zu Herzen.
Nochmals Danke für die schnelle Antwort.

Gruss
Gerhardt