FieldDefs->Add funzt nicht
-
Hallo,
Beim Versuch diese Methode aufzurufen
frmAdministration->TableBenutzer->FieldDefs->Add("zusatz",ftString,30,false);kommt zu folgender Fehlermeldung:
"Zugriffsverletzung an der Adress BLA BLA..."
Active Eigenschaft der TTable steht auf false.
Idee?
Danke
epidemic
-
hi,
hier mal ein beispiel wie ich das mache... ich habe ein query und schiebe die abfrage in eine neue tabelle.
// ... // neue tabelle anlegen /*Table1->*/Active = false; /*Table1->*/TableType = ttParadox; /*Table1->*/TableName = "blahblah"; // zielverzeichnis für die tabelle /*Table1->*/DatabaseName = ExtractFilePath(Application->ExeName) + "temp"; // felddefinitionen löschen /*Table1->*/FieldDefs->Clear(); // Query-Abfrage durchgehen und in Tabelle eintragen for (int i = 0; i < Query->FieldCount; i++) { int ds = Query->Fields->Fields[i]->DataSize; TFieldType dt = Query->Fields->Fields[i]->DataType; switch(dt) { // diese feldtypen müssen 0 sein (laut hilfe Field->Size) case ftAutoInc : case ftBoolean : case ftSmallint : case ftWord : case ftInteger : case ftLargeint : case ftDate : case ftTime : case ftDateTime : case ftFloat : case ftCurrency : ds = 0; break; // alle anderen bekommen die originalgrösse zugewiesen } // felddefinition anlegen /*Table1->*/FieldDefs->Add(Query->Fields->Fields[i]->FieldName, dt, ds, false); } // internes feld einfügen /*Table1->*/FieldDefs->Add("TmpInternData", ftInteger, 0, false); // tabelle erzeugen /*Table1->*/CreateTable(); // tabelle öffnen /*Table1->*/Active = true; // ...
/*Table1->*/ ist nur zur kennzeichnung, dass diese eigenschaften und funktionen zum TTable gehören!
[ Dieser Beitrag wurde am 31.03.2003 um 14:17 Uhr von Sunday editiert. ]
-
Danke!
hat sich erledigt, habe das Problem mit direktem SQL Statement gelöst.
epidemic