Problem mit "INSERT INTO"-SQL-Statement



  • Hallo,

    ich verwende die ADO-Komponente vom BCB-Pro und möchte mit einer einfachen INSERT INTO Anweisung einen neuen Datensatz in eine Tabelle anlegen:

    ADOQuery1->Close();
    ADOQuery1->SQL->Clear();
    ADOQuery1->SQL->Add("INSERT INTO std (Name, Vorname, Firma, Geschlecht)");
    ADOQuery1->SQL->Add("         VALUES ('Mustermann','Max','Willis Wurstbude','M');");
    ADOQuery1->Active = true;
    ADOQuery1->ExecSQL();
    

    Das quittiert mir der BCB mit dieser Fehlermeldung:
    "Der aktuelle Provider unterstützt nicht die Wiedergabe mehrfacher Recordsets bei einer einzelnen Ausführung."

    Ich verstehe leider nicht so ganz, was da falsch läuft. Habe auch nichts zu diesem Fehler im Forum gefunden. Vielleicht kann mir jemand weiterhelfen, wo das Problem bzw. dessen Lösung zu finden sein könnte.

    Gruß,
    Björn



  • Probier mal die SQL-Anweisung in einer Zeile:

    ADOQuery1->Close();
    ADOQuery1->SQL->Clear();
    ADOQuery1->SQL->Add("INSERT INTO std (Name, Vorname, Firma, Geschlecht) VALUES ('Mustermann','Max','Willis Wurstbude','M');");
    ADOQuery1->ExecSQL();
    

    Und wenn das nicht geht, dann hinter ...Wurstbude','M') das Semikoleon weg.



  • das ist doch quatsch:

    ADOQuery1->Active = true; 
    ADOQuery1->ExecSQL();
    

    bei insert brauchst du nur ADOQuery1->ExecSQL();
    mit
    ADOQuery1->Active = true; wird ein DataSet geöffnet und eignet sich für sachen, wie SELECT * FROM ...



  • Xqgene schrieb:

    das ist doch quatsch

    Jop das mit dem Active war die Lösung. Danke für die Hilfe.


Anmelden zum Antworten