(Borland C++...) Tables korpieren



  • Ich versuche ein Table zur Laufzeit zu erstellen und aus zwei andern Tables die Daten zu kopieren (RecordCout bei den beide Tables unterschiedliche!!!!). Dann will ich eine DataSource erstellen und mit DBGrid und später mit Quickeport verbinden!

    Läuft auch alles soweit, aber ich finde den Code nicht gerade „glücklich“!
    Hat vielleicht jemand eine bessere Idee für das Kopieren der Tables?
    (außerdem ist Table1 nur bei z.B. ButtonClick verfügbar, ich brauche es in jeder Form)

    Der Code:

    TTable* Table1 = new TTable(this);
    Table1->Active = false;
    Table1->DatabaseName = "xxxx";
    Table1->TableType = ttDefault;

    Table1->TableName = "Table1";
    Table1->FieldDefs->Add("xxxx",ftString,5,true); ....
    Table1->CreateTable();
    Table1->Active = true;
    Table1->Edit();
    Table2->FindFirst();
    Table3->FindFirst();
    if(Table2->RecordCount>= Table3->RecordCount){
    for (int i=1; i<=Table3->RecordCount;i++)
    {
    Table1->Insert();
    Table1->FieldByName("xxxx")->AsString= Table2->FieldByName("xxx")->AsString;
    //und noch ein paar Übernahmen aus Table2 und Table3
    Table2->->Next();
    Table3->->Next();
    }
    while (Table3->->Eof) //für den Rest
    {
    Table1->Insert();
    Table1->FieldByName("xx")->AsString= Table2->FieldByName("xx")->AsString;
    //und noch ein paar Übernahmen aus Table3;
    Table3->Next();
    }
    }
    else {
    //das gleiche wie oben nur Table2 und Table 3 umgedreht
    }
    Table1->Post();
    Table1->Active=false;
    Table1->Active = true;

    TDataSource *DS = new TDataSource(this);
    DS->Enabled=true;
    DS->AutoEdit=true;
    DS->DataSet=Table1;
    DBGrid2->DataSource=DS;

    Gruß und Danke

    Michael



  • Sieht mir irgendwie nach Borland C++.


Anmelden zum Antworten