verschiedene Datenbank tabellen



  • Hi,

    könnte mir jemand erklären was daran falsch ist??

    ADOQuery_1->Close();
    ADOQuery_1->SQL->Clear();
    Query_1->SQL->Add("Insert into Tabelle1(name,vorname) values (:name,:vorname);");
    ADOQuery_1->SQL->Add("Insert into Tabelle2(adresse,telefon) values (:adresse,:telefon);");
    
    ADOQuery_1->Parameters->ParamByName("name")->Value=Edit1->Text;
    ADOQuery_1->Parameters->ParamByName("vorname")->Value=Edit2->Text;
    ADOQuery_1->Parameters->ParamByName("Adresse")->Value=Edit3->Text;
    ADOQuery_1->Parameters->ParamByName("Adressen")->Value=Edit4->Text;
    
    AD0Query_1->ExecSQL();
    

    Wenn ich das so eingebe kommt ne Meldung

    "Im Projekt .... ist eine Exception der Klasse EOleException aufgetreten. Meldung: '[Microsoft][ODBC Microsoft Acces Driver] Zeichen nach Ende von SQL-Anweisung gefunden'. ....."

    Ich bekomm es einfach nicht hin daten in 2 verschiedenen Tabellen zu speichern die ne 1:1 Beziehung haben.

    Bin für jede Hilfe Dankbar



  • Hallo

    Wie die fehlermeldung sagt, hat es nichts mit dem Verhältnis der Tabellen an sich zu tzun, sondern weil die SQL-Syntax nicht richtig ist. Mein Typ : Die Komponenten bzw. das Client-Interface von Access können keine Mehrfachanweisungen verarbeiten. Deshalb must du die beiden SQL-Anweisungen voneinander getrennt zusammenstellen und ausführen.

    /Edit : Davon ausgehend, das der eine einsame Query-Name nur ein Schreibfehler ist.
    Wenn nicht : Du must trotzdem die Semikolon hinter den SQL-Anweisungen weglassen.

    bis bald
    akari



  • ich komm mir jetzt ein bisschen blöd vor, aber ich versteh das nicht so ganz wie du das meinst.

    Ich hab das jetzt so verstanden

    ADOQuery_1->Close();
    ADOQuery_1->SQL->Clear();
    AD0Query_1->SQL->Add("Insert into Tabelle1(name,vorname) values (:name,:vorname);");
    
    ADOQuery_1->Parameters->ParamByName("name")->Value=Edit1->Text;
    ADOQuery_1->Parameters->ParamByName("vorname")->Value=Edit2->Text;
    
    AD0Query_1->ExecSQL();
    ADOQuery_1->SQL->Clear();
    
    ADOQuery_1->SQL->Add("Insert into Tabelle2(adresse,telefon) values (:adresse,:telefon);");
    
    ADOQuery_1->Parameters->ParamByName("Adresse")->Value=Edit3->Text;
    ADOQuery_1->Parameters->ParamByName("Adressen")->Value=Edit4->Text;
    
    AD0Query_1->ExecSQL();
    


  • Hallo

    Ja genauso habe ich das gemeint.
    Wenn du jetzt noch die Semikolons in den SQL-Anweisungen wegläßt, sollte der Fehler behoben sein.

    bis bald
    akari



  • hi,

    warum machst es nicht über FieldByName?

    ADOQuery1->Close();
    ADOQuery1->SQL->Clear();
    ADOQuery1->SQL->Add("SELECT * FROM......);
    ADOQuery1->Open();
    
    ADOQuery1->Append(); //auf letzten Datensatz setzten
    ADOQuery1->FieldByName("name")->AsString = Edit1->Text;
    .....
    ADOQuery1->Post();
    


  • Danke für deine Hilfe.

    Ich bekomm zwar jetzt noch einen fehler das die beziehungen nicht stimmen aber das hat ja nichts mehr mit der C++ programmierung zu tuen (Denke ich mal).



  • Avalon schrieb:

    hi,
    warum machst es nicht über FieldByName?
    ...

    Das mag bei solch einfachen Sachen noch gehen.
    Aber mit INSERT-Anweisung ist man flexibler und direkter.

    bis bald
    akari


Anmelden zum Antworten