Einzelnen Beitrag anzeigen

mohSha

Registriert seit: 4. Jun 2014
4 Beiträge
 
#1

DataSet.Filter mit mehreren Bedingungen

  Alt 4. Jun 2014, 09:29
Datenbank: PARADOX • Version: 4 • Zugriff über: BDE
Hallo,
ich bin neu hier und habe gleich eine Frage. Ich schreibe eine Anwendung mit c++Builder. Bin aber in c++ Builder Foren nicht fundig geworden, deshalb stelle ich meine Frage hier

Kurz zusammen gefasst:
habe eine Tabele (CustomerT) mit Nachname, vorname, und Geb. Datum.
Nun möchte ich in dieser Datenbank nach einem Kunden suchen. Dazu mache ich:

Code:
...
{
TFilterOptions FilterOptions;
   TTable *t = CustumerT;
   FilterOptions.Clear();
   FilterOptions << foCaseInsensitive;// << foNoPartialCompare;
   sFilter = "";
   t->FilterOptions = FilterOptions;
   AnsiString v[3]={"","",""};
   v[0] = Edit1->Text.c_str();     //LN
   v[1] = Edit2->Text.c_str();     //FN
   if(BirtDateDateTimePicker->Checked)
      v[2] = BirtDateDateTimePicker->Date.DateString().c_str();
   if (!v[0].IsEmpty() ) {sFilter = "LastName = '" +v[0]+ "'" ; }
   else if    ( !v[0].IsEmpty() && v[1].IsEmpty() && v[2].IsEmpty()) {sFilter = "LastName = '" +v[0]+ "'" ; }
   else if    ( !v[0].IsEmpty() && !v[1].IsEmpty() && v[2].IsEmpty()) {sFilter = ("LastName = '" +v[0]+ "'") ?????????????????  ("FirstName = '" +v[1]+ "'" ) ; }
   else if(  v[0].IsEmpty() && !v[1].IsEmpty() && v[2].IsEmpty()) {sFilter   = "FirstName = '" +v[1]+ "'" ; }//{t->Filter   = "LastName = '"+v[0]+"'" ???? "FirstName = '"+v[1]+"'"; }
   else if(  v[0].IsEmpty() && v[1].IsEmpty() && !v[2].IsEmpty()) {sFilter   = "Birthday = '" +v[2]+ "'" ; }//{...}
   t->Filter   = sFilter;
   if(t->FindFirst()){
      Action_Findnext->Enabled = true;
      Action_Findprior->Enabled = true;
   } 
}
wie kann ich der Filter nun so verwenden, dass in meiner Tabelle nach Vorname und Nachname sucht?

ist es überhaupt möglich nach zwei Feldern in der Datenbank zu filtern?

Danke

Geändert von TBx ( 4. Jun 2014 um 11:44 Uhr) Grund: Titel korrigiert
  Mit Zitat antworten Zitat