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();
-
-
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?