Hallo,
ich habe mal eine Frage zu einer SQL Abfrage mit mehreren Parametern.
In der Where Klausel habe ich folgende Konstruktion
1.
WHERE ((x = ParameterA) OR (x = ParameterA))
ADO erkennt in diesem Fall nicht das es sich um den gleichen Parameter handelt und legt einen weiteren ParameterA an. Die konfiguration im Objektinspektor ist identisch mit dem ersten ParameterA. Im Programm müßte ich eben nun auch dem zweiten ParameterA einen Wert zuweisen.
Hab ich auch getan aber die Abfrage verhält sich anders wie erwartet. Der ParameterA wird nur an das erste vorkommen in der Abfragebergeben.
Also lösche ich den Paramter in der Parameterliste und bennene den zweiten ParamterA in ParameterB und übergebe im Programm zweimal den gleichen Wert. Einmal an ParamterA und einmal an ParamterB, sonst funtionierts nicht.
2.
WHERE ((x = ParameterA) OR (x = ParameterB))
Dann funktioniert es zwar auch aber mich würde mal interessieren wieso erkennt ADO das nicht? Wenn ich die Abfrage 1 in Access direkt eingebe und starte frag Access mich nur einmal nach dem Wert des ParametersA und die Abfrage ist sogar noch richtig. Im zweiten Fall funktionierts auch in Access sowieso, klar.
Liegt diese Verhalten wieder mal an dem Delphi ADO Komponenten Überbau ?
Viele Grüße
Walter
ich habe mal eine Frage zu einer SQL Abfrage mit mehreren Parametern.
In der Where Klausel habe ich folgende Konstruktion
1.
WHERE ((x = ParameterA) OR (x = ParameterA))
ADO erkennt in diesem Fall nicht das es sich um den gleichen Parameter handelt und legt einen weiteren ParameterA an. Die konfiguration im Objektinspektor ist identisch mit dem ersten ParameterA. Im Programm müßte ich eben nun auch dem zweiten ParameterA einen Wert zuweisen.
Hab ich auch getan aber die Abfrage verhält sich anders wie erwartet. Der ParameterA wird nur an das erste vorkommen in der Abfragebergeben.
Also lösche ich den Paramter in der Parameterliste und bennene den zweiten ParamterA in ParameterB und übergebe im Programm zweimal den gleichen Wert. Einmal an ParamterA und einmal an ParamterB, sonst funtionierts nicht.
2.
WHERE ((x = ParameterA) OR (x = ParameterB))
Dann funktioniert es zwar auch aber mich würde mal interessieren wieso erkennt ADO das nicht? Wenn ich die Abfrage 1 in Access direkt eingebe und starte frag Access mich nur einmal nach dem Wert des ParametersA und die Abfrage ist sogar noch richtig. Im zweiten Fall funktionierts auch in Access sowieso, klar.
Liegt diese Verhalten wieder mal an dem Delphi ADO Komponenten Überbau ?
Viele Grüße
Walter
Comment