Abfrage mit :var funktioniert nicht

Hallo,

ich habe hier Probleme mit der Parameterabfrage. Jede Abfrage mit =:var am Ende wirft eine Fehlermeldung aus.
Es öffnet sich wie gewohnt das Dialog Fenster in dem man einen Wert eingeben muss. Nach Eingabe
kommt es zum Fehler.

Mit ’ = ? ’ am Ende funktioniert die Abfrage.
Ebenso wenn im SQL-Modus ein konkreter Wert eingegeben wird.

Ich brauche aber unbedingt eine Variable, da die Abfrage Teil eines Unterformulares ist auf die ich
zugreifen will. Das hat in den letzten Jahren immer einwandfrei funktioniert. Hat sich da was geändert?

Vielen Dank für Tips.

System: Server: Debian Buster 10.7 mit mariadb
Client: Debian Buster 10.7 mit Libreoffice 7.0.4.2

Fehlermeldung:
Die Dateninhalte konnten nicht geladen werden. /build/libreoffice-ZyStoj/libreoffice-7.0.4~rc2/connectivity/source/commontools/dbtools.cxx:751

Zeile 1 /build/libreoffice-ZyStoj/libreoffice-7.0.4~rc2/connectivity/source/drivers/mysqlc/mysqlc_general.cxx:119

SELECT “FIRSTNAME”, “LASTNAME”, “ADDRESS”, “POSTALCODE”, “CITY”, “AdrNr” FROM “test”.“adress” “adress” WHERE “AdrNr” = :var

Ich habe das mit dem direkten Treiber, MariaDB und LO 7.0.4.2 auf OpenSUSE probiert. Keine Probleme.

Die folgenden Faktoren spielen da mit rein:

  • Art der Verbindung und ggf. die Einstellung unter Bearbeiten → Datenbank → Erweiterte Einstellungen → Besondere Einstellungen → Benannte Parameter durch '?' ersetzen.
  • Fehlerhafter Eintrag in der *.odb-Datei zu den Parametern. In der content.xml der *.odb-Datei steht dann db:parameter-name-substitution="false" bei den Driver-settings. Dieser Eintrag muss gelöscht werden. Das Löschen geht auch per Makro.
 SUB FB_Parameter
 DIM oSettings AS OBJECT
 oSettings = ThisComponent.DataSource.Settings
 oSettings.ParameterNameSubstitution = True
 END SUB

Nach Ablauf des Makros ist der Eintrag verschwunden. Die *.odb-Datei muss danach natürlich gespeichert werden.

Siehe dazu auch die Einträge im Handbuch → Datenbank erstellen → Nachträgliche Bearbeitung der Verbindungseigenschaften.

Danke für die schnelle Antwort

Art der Verbindung und ggf. die Einstellung unter Bearbeiten → Datenbank → Erweiterte Einstellungen → Besondere > > Einstellungen → Benannte Parameter durch ‘?’ ersetzen.

Ist bei mir leider gar nicht vorhanden

Fehlerhafter Eintrag in der *.odb-Datei zu den Parametern. In der content.xml der *.odb-Datei steht dann >db:parameter-name-substitution=“false” bei den Driver-settings. Dieser Eintrag muss gelöscht

Wie soll ich diese Datei editieren? Aber egal denn:

Das Löschen geht auch per Makro.

Hab ich gemacht und das Problem ist gelöst.
Danke recht herzlich und Grüße

Bitte poste auf ask.libreoffice.org nur dann eine Antwort, wenn Du eine Frage (in diesem Falle Deine eigene) beantwortest. Ansonsten benutze bitte die kommentieren Funktion unterhalb der jeweiligen Antwort/des Kommentars auf die/den Du reagieren willst. Um weitere Information zu den Details Deiner Frage zu geben, bitte die Frage mit Bearbeiten bearbeiten. Vielen Dank …