Einzelnen Beitrag anzeigen

hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

Abfrage verhält sich in Access anders als über ADO in Delphi

  Alt 20. Jul 2007, 12:36
Datenbank: Access • Version: kA • Zugriff über: ADO
'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
inde deus abest
  Mit Zitat antworten Zitat