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 mitfor(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(); }