'loha Folks,
die untenstehende Abfrage wird in
Access ausgeführt:
SQL-Code:
SELECT * FROM [User]
WHERE
Username LIKE :Username
AND
DepartmentID = :DepartmentID
OR
:DepartmentID IS NULL
ORDER BY Username;
Als Parameter übergebe ich ein Sternchen bei Username und bei der DepartmentID nichts. So werden sämtliche Datensätze aus der Tabelle ausgelesen. Ist der Parameter DepartmentID gesetzt, werden nur noch die Datensätze ausgegeben, welche die entsprechende DepartmentID haben. So weit, so gut.
Nehme ich nun dieselbe Abfrage und führe sie in einer Applikation aus, so kann als DepartmentID alles mögliche übergeben werden (Username hat immer noch ein Sternchen beziehungsweise Prozentzeichen als Parameter), es werden trotzdem sämtliche in der Tabelle vorhandenen Datensätze ausgegeben, was ich etwas komisch finde.
In Delphi werden die Parameter wie folgt gesetzt (habe die Werte versuchsweise von Hand eingetragen):
Delphi-Quellcode:
with ADODataSet_UserDepartment do
begin
Close;
Parameters.ParamByName('Username').Value := '%';
Parameters.ParamByName('DepartmentID').Value := ''
Open;
end;
Wie bereits erwähnt, funktioniert dies aber nicht.
Weiss jemand Rat?
Grüsse
hirnstroem