Parameter XY has no default value. ????



  • Lass dir den SQL-String mal zur Laufzeit ausgeben und prüfe, ob er Sinn ergibt.

    Wie mache ich das?



  • Ähm, z.B. Memo1->Text = ADOQuery1->SQL->Text; !?



  • Sorry das es so lange gedauert hat.

    ProjectOverview->ADOQuery1->SQL->Clear();
     ProjectOverview->ADOQuery1->SQL->Add("Insert INTO projectlist(status,projectnumber,projectname,customer) VALUES ("+newProjectnumber->Text+","+newProjectnumber->Text+","+newProjectname->Text+","+newCustomer->Text +")");
     //ProjectOverview->ADOQuery1->ExecSQL();
     Memo1->Text = ADOQuery1->SQL->Text;
    

    in Memo1 steht dann:

    Insert INTO projectlist(status,projectnumber,projectname,customer) VALUES (newProjectnumber,newProjectnumber,newProjectname,newCustomer)

    Es scheint alles ok zu sein oder?



  • offensichtlich nicht, außer du hast newProjectnumber,newProjectnumber,newProjectname,newCustomer in den Edits stehen. Ich denke aber mal eher da sollten Zahlen hin.

    greetz KN4CK3R



  • das nuss drin stehen. Habe jetzt in alle edits was anderes reingeschrieben.

    Insert INTO projectlist(status,projectnumber,projectname,customer) VALUES (tfvzgbuh,tfvzgbuh,ghvbj,fghj)



  • swunder schrieb:

    in Memo1 steht dann:

    Insert INTO projectlist(status,projectnumber,projectname,customer) VALUES (newProjectnumber,newProjectnumber,newProjectname,newCustomer)

    Es scheint alles ok zu sein oder?

    der Schein trügt: es fehlen die einfachen Anführungszeichen, d.h. dein SQL muß eigentlich so aussehen:

    Insert INTO projectlist(status,projectnumber,projectname,customer) VALUES ('newProjectnumber','newProjectnumber','newProjectname','newCustomer')
    

    falls es sich allerdings bei deinen Tabellenfeldern nicht um Zeichenfelder (strings) handelt bekommst du so auch wieder Fehler

    besser ist die Verwendung von Parametern, da die den Feldtyp entsprechend verwenden:

    ProjectOverview->ADOQuery1->SQL->Add("Insert INTO projectlist(status,projectnumber,projectname,customer) VALUES (:status,:newProjectnumber,:newProjectname,:newCustomer)");
    ProjectOverview->ADOQuery1->Parameters->ParamByName("status")->Value = newProjectnumber->Text;
    ProjectOverview->ADOQuery1->Parameters->ParamByName("newProjectnumber")->Value = newProjectnumber->Text.ToInt(); //falls ProjectNumber ein Int ist, alternativ ToIntDef
    ProjectOverview->ADOQuery1->Parameters->ParamByName("newProjectname")->Value = newProjectname->Text;
    ProjectOverview->ADOQuery1->Parameters->ParamByName("newCustomer")->Value = newCustomer->Text;
    ProjectOverview->ADOQuery1->ExecSQL();
    


  • @KN4CK3R

    HAst recht mit Zahlen klapt es wunder bar!!!

    ???? WARUM ????



  • weil du das so gemacht hast?!
    Ist doch deine Tabelle.

    greetz KN4CK3R



  • @KN4CK3R
    Wo kann ich diesen Wert (Zahlen oder Strings) beinflussen?

    @Linnea
    habe deinen Code ausprobiert jetzt bekommen ich folgenden Fehler heraus.

    Syntax error in FROM clause.



  • wie kann das denn kommen? ist doch gar kein FROM im Query drin, oder? an welcher Stelle (Quellcode) kommt denn der Fehler?


Anmelden zum Antworten