Wo ist der Fehler in der SQL Anweisung ?



  • ich hab eine sql abfrage in der ein datensatz geändert werden soll.
    Dieser wird über PID eindeutig indentifiziert (Zähler in tabelle).

    hier meine 2 versionen:

    frmDB->ADOQuery1->SQL->Add("UPDATE Personal");
              frmDB->ADOQuery1->SQL->Add("SET Status = 'off'");
              frmDB->ADOQuery1->SQL->Add("WHERE PID = '" + StrToInt(txtPID->Text) + "'");
    

    Fehlermeldung: Erzeugen
    [C++ Fehler] Personal_del.cpp(126): E2085 Unzulässige Zeigeraddition

    Mein zweiter Versuch lief über Paramter:

    frmDB->ADOQuery1->SQL->Add("UPDATE Personal");
              frmDB->ADOQuery1->SQL->Add("SET Status = 'off'");
              frmDB->ADOQuery1->SQL->Add("WHERE PID = :Par");
              frmDB->ADOQuery1->Parameters->ParamByName("PID")->Value  = StrToInt(txtPID->Text);
    

    Aber auch dies Verursacht einen Fehler und das sogar erst zur Laufzeit.
    Das Programm verabschiedet sich dann mit der Meldung Zugriffsverletzung bei Adresse .... in Modul 'msado15.dll'.

    der teufel muss in dem sch*** int wert PID stecken denn hier geht es:

    // SQL Abfrage erstellen
            frmDB->ADOQuery1->SQL->Add("INSERT INTO Fachkraft (Vorname, Name, Strasse, PLZ, Ort, Tel, Mobil, Status)");
            frmDB->ADOQuery1->SQL->Add("VALUES('" + txtVorname->Text + "', '" + txtName->Text + "', '" + txtStrasse->Text + "', '" + txtPLZ->Text + "', '" + txtOrt->Text + "', '" + txtTel->Text + "', '" + txtMobil->Text + "', 'on')");
    
            // SQL an die DB übertragen
            frmDB->ADOQuery1->ExecSQL();
    

    warum ?
    ich dreh noch durch!!!!



  • Einmal reicht, danke!


Anmelden zum Antworten