Base mit Parameter

Hallo,

ich versuche, in Base eine Abfrage mit Parameter auszuführen. Der Parameter bezieht sich auf ein Datumsfeld, also etwa so: Startdatum < 01.01.2012. Gebe ich das Datum für die Bedingung direkt in der Abfrage ein, so funktioniert die Abfrage wie gewünscht. Steht dort ein Parameter, also z.B. :AB, kommt die Abfrage für den Wert. Da kann ich nun eingeben was ich will, Datum in deutscher/engl. Schreibweise, mit Hochkomma, Anführungszeichen, Punkt oder - zwischen den Ziffern, ich bekomme immer nur die Fehlermeldung SQL-Status: 42001 Fehler-Code: 42001. Es ist auch egal, ob Abfragedesigner oder SQL direkt. Ich habe das auch auf eine simple Abfrage reduziert, die nur eine Tabelle mit dieser einen Bedingung anzeigen soll - ergebnislos.

Was mache ich da falsch? Ich hoffe, jemand weiß einen Rat.

Schönes Ostern

Thomas

Hallo Thomas,

ich versuche, in Base eine Abfrage mit Parameter auszuführen. Der
Parameter bezieht sich auf ein Datumsfeld, also etwa so: Startdatum <
01.01.2012. Gebe ich das Datum für die Bedingung direkt in der Abfrage
ein, so funktioniert die Abfrage wie gewünscht. Steht dort ein
Parameter, also z.B. :AB, kommt die Abfrage für den Wert. Da kann ich
nun eingeben was ich will, Datum in deutscher/engl. Schreibweise, mit
Hochkomma, Anführungszeichen, Punkt oder - zwischen den Ziffern, ich
bekomme immer nur die Fehlermeldung SQL-Status: 42001 Fehler-Code:
42001. Es ist auch egal, ob Abfragedesigner oder SQL direkt. Ich habe
das auch auf eine simple Abfrage reduziert, die nur eine Tabelle mit
dieser einen Bedingung anzeigen soll - ergebnislos.

Mit welcher Version arbeitest Du? Ich habe das hier gerade mit der 3.3.4
unter Linux-rpm-32bit getestet. Ob ich 1.1.12 oder 01.01.2012 oder
1.01.12 eingebe - die Abfrage läuft. Auch mit der 3.5.2 RC2 kein Problem.

Die Abfrage endet mit
WHERE "Datum" < :Datum

Du arbeitest mit der internen HSQLDB?
Du hast das Feld als Datumsfeld in der Tabelle stehen?

Gruß

Robert

Hallo Robert,

danke für die Antwort, jetzt weiß ich, wo ich weiter suchen muß. Es ist wirklich ein Datumsfeld, ich arbeite mit einer h2-Datenbank. Da scheint die Syntax für Parameter anders zu sein, nur habe ich noch nicht gefunden, wie. Mit der internen HSQL-DB geht es wirklich so, wie Du schreibst.

Thomas

Hallo Thomas,

danke für die Antwort, jetzt weiß ich, wo ich weiter suchen muß. Es ist
wirklich ein Datumsfeld, ich arbeite mit einer h2-Datenbank. Da scheint
die Syntax für Parameter anders zu sein, nur habe ich noch nicht
gefunden, wie. Mit der internen HSQL-DB geht es wirklich so, wie Du
schreibst.

Eigentlich darf das nichts mit der Datenbank zu tun haben. Die
Parameterabfragen werden eigentlich durch die GUI zu einer SQL-Abfrage
an die Datenbank umgewandelt. Nehme ich eine Prameterabfrage und drücke
auf "SQL - Befehl direkt ausführen" (schalte damit die GUI aus), so wird
keine Abfrage des Parameters erfolgen.

Ich denke, dass da eine falsche SQL-Umsetzung stattfindet. Das Blöde ist
nur die Allerweltsfehlermeldung, die Du erhältst.

Vielleicht testest Du einmal das, was unter dem Begriff "Abfrageentwurf"
in der Hilfe steht, hier speziell zu Datumsfeldern: