Variable Feldnamen



  • Hallo,

    in einer Access-Tabelle speichere ich mir Namen der Textfelder und Namen des Datenbankfeldes, das darin angezeigt werden soll (TextField und TableField).
    Die Felder durchlaufe ich jetzt mit

    for(int i=0; i <  frmKundenstamm->ComponentCount; i++)
    

    Wie ist das vom Zeitverhalten - ich könnte den Indexwert der Komponente ja auch in einem Array speichern und diesen dann durcharbeiten. Wäre dies schneller ?

    Schönen Dank,

    Iatros

    objQuery->Close();
       objQuery->SQL->Clear();
       objQuery->SQL->Add("Select * from TableTextFields where Type = 'Edit'");
       objQuery->Open();
    
       objQuery2->Close();
       objQuery2->SQL->Clear();
       objQuery2->SQL->Add("Select * from adressen where KdNr = 5810");
       objQuery2->Open();
    
      // KdNr 5810
       while (objQuery->Eof == False)
       {
          for(int i=0; i <  frmKundenstamm->ComponentCount; i++)
          {
            if ( frmKundenstamm->Components[i]->ClassNameIs("TEdit"))
            {
                if (dynamic_cast<TEdit*>( frmKundenstamm->Components[i])->Name == objQuery->FieldByName("TextField")->AsString)
                {
                   if (objQuery->FieldByName("RelationTable")->AsString == "")
                   {
                      dynamic_cast<TEdit*>( frmKundenstamm->Components[i])->Text = objQuery2->FieldByName(objQuery->FieldByName("TableField")->AsString)->AsString;
                   }
                   else
                   {
                      objQuery3->Close();
                      objQuery3->SQL->Clear();
                      objQuery3->SQL->Add("Select " + objQuery->FieldByName("TableField")->AsString + " from " + objQuery->FieldByName("RelationTable")->AsString + " where " + objQuery2->FieldByName(objQuery->FieldByName("RelationSourceField")->AsString)->AsString + " = " + objQuery->FieldByName("RelationDestField")->AsString);
                      objQuery3->Open();
    
                      dynamic_cast<TEdit*>( frmKundenstamm->Components[i])->Text = objQuery3->FieldByName(objQuery->FieldByName("TableField")->AsString)->AsString;               }
                }
             }
          }
          objQuery->Next();
       }
    

Anmelden zum Antworten