Autor Beitrag
wwwdirk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38


D6 Prof / D2005 Prof
BeitragVerfasst: Di 10.07.07 15:05 
Habe Probleme mit dem Filtern eines TADODataset des Typs cmdTable. Es handelt sich um einen clientseitigen Cursor.

ausblenden Delphi-Quelltext
1:
2:
3:
DM.DSUserQueries.Filter   := format ('(OWNER=''%s'' or OWNER=''%s'') and (DATASET=''%s'')',
 [FOwner, 'SYSTEM', FDataSetName]);
DM.DSUserQueries.Filtered := true;

Das Setzen der Filtered-Eigenschaft führt zur folgenden Meldung:
"Arguments are of the wrong type, are out of the acceptable range, or are in conflict with one another."

Folgende Varianten funktionieren ohne Probleme:
ausblenden Delphi-Quelltext
1:
Filter := format ('(OWNER=''%s'') and (DATASET=''%s'')', FOwner, FDataSetName]);					

oder
ausblenden Delphi-Quelltext
1:
Filter := format ('OWNER=''%s'' and DATASET=''%s''', FOwner, FDataSetName]);					

oder
ausblenden Delphi-Quelltext
1:
Filter   := format ('(OWNER=''%s'' or OWNER=''%s'')', [FOwner, 'SYSTEM']);					


Hat jemand einen Tipp?
wwwdirk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 38


D6 Prof / D2005 Prof
BeitragVerfasst: Mi 18.07.07 11:19 
Ich hab jetzt noch einige Konstellationen ausprobiert. Die folgende funktioniert einwandfrei.

ausblenden Delphi-Quelltext
1:
2:
  DM.DSUserQueries.Filter   := format ('(OWNER=%s and DATASET=%s) or (OWNER=%s and DATASET=%s)',
   [QuotedStr (FOwner), QuotedStr (FDataSetName), QuotedStr ('SYSTEM'), QuotedStr (FDataSetName)]);

Sehr merkwürdig :gruebel: !?! Für kompliziertere Filterstrings wahrscheinlich auch nicht praktikabel!