Datenbank Probleme (INSERT) Ungültiges Schlüsselwort
-
Hallo,
ich hoffe das mir hier jemand helfen kann ich bin nehmlich langsam am verzweifeln also folgendes ich will daten in eine Datenbank eingeben über Edit felder.
Der fehler:
http://www.blubb-city.de/fehlermeldung.jpg 
Die datenbank ist einfach auchgebaut Alle felder sind A(lpha) nur das erste (Id) ist ein zähler und als primärschlüsse deklariert.Hier der Code:
stVon = ComboBox2->Text; stAn = ComboBox3->Text; stMeldung = Memo3->Text; if (stVon != "" && stAn != "" && stMeldung != "") { ComboBox2->Text = ""; ComboBox3->Text = ""; Memo3->Clear(); Query1->Active = false; Query1->SQL->Clear(); Query1->SQL->Add("INSERT INTO EDS_data.db (Id, Pos, Von, An, Meldung, Meldedatum, Meldezeit, Benutzer, ENR) VALUES (,1,:Von,:An,:Meldung,:Meldedatum,:Meldezeit,:Benutzer,:ENR)"); Query1->ParamByName("Von")->Value = stVon; Query1->ParamByName("An")->Value = stAn; Query1->ParamByName("Meldung")->Value = stMeldung; Query1->ParamByName("Meldedatum")->Value = DatumDMY; Query1->ParamByName("Meldezeit")->Value = StMi; Query1->ParamByName("Benutzer")->Value = Edit8->Text; Query1->ParamByName("ENR")->Value = ComboBox1->Text; Query1->Active = true; Query1->ExecSQL(); }ich habe es auch so versucht jedoch das gleiche ergebniss
Query1->SQL->Add("INSERT INTO `EDS_data.db` (Id, Pos, Von, An, Meldung, Meldedatum, Meldezeit, Benutzer, ENR) VALUES (,1," + stVon + "," + stAn + "," + stMeldung + "," + DatumDMY + "," + StMi + "," + platz + "," + ComboBox1->Text + ")");
Variablen die hier nicht sichtbar sind werden Global übergeben (z.B. DatumDMY)Ich hoffe das jemand von euch mir helfen kann.
MfG
Acrot
-
wenn ID ein Autowert ist brauchst du das nicht mit im Insert
... Query1->SQL->Add("INSERT INTO EDS_data.db (Pos, Von, An, Meldung, Meldedatum, Meldezeit, Benutzer, ENR) VALUES (1,:Von,:An,:Meldung,:Meldedatum,:Meldezeit,:Benutzer,:ENR)"); ...ansonsten mußt du schon einen Wert angeben
Query1->SQL->Add("INSERT INTO EDS_data.db (ID,Pos, Von, An, Meldung, Meldedatum, Meldezeit, Benutzer, ENR) VALUES (:ID_Wert,1,:Von,:An,:Meldung,:Meldedatum,:Meldezeit,:Benutzer,:ENR)");
-
Hallo
Query1->Active = true;solltest du weglassen
MfG
Klaus
-
Leider habe ich jetzt folgendes Problem:
http://www.blubb-city.de/fehlermeldung2.jpgHabe alles so geändert wie Ihr es gesagt habt.
-
Wenn Deine Zieltabelle Textdatentypen wie Varchar enthält verwundert mich der Fehler nicht.
Du hat in Deiner SQL-Anweisung keine Hochkommata die aber für Text (teilweise auch für Datum- und Zeit) nötig sind.
String FeldA="Text"; String FeldB="7"; String SQL= "INSTERT INTO TABELLE (MEINTEXTFELD, MEINZAHLFELD) " "VALUES ([b]'[/b]"+FeldA+"[b]'[/b],"+FeldB+")";
-
Leider habe ich jetzt die folgende fehlermeldung:
www.blubb-city.de/fehlermeldung3.jpgDer momentane stand ist:
Query1->Active = false; Query1->SQL->Clear(); Query1->SQL->Add("INSERT INTO EDS_data.db (Pos, Von, An, Meldung, Meldedatum, Meldezeit, Benutzer, ENR) VALUES (1,':Von',':An',':Meldung',':Meldedatum',':Meldezeit',':Benutzer',':ENR')"); Query1->ParamByName("Von")->Value = stVon; Query1->ParamByName("An")->Value = stAn; Query1->ParamByName("Meldung")->Value = stMeldung; Query1->ParamByName("Meldedatum")->Value = DatumDMY; Query1->ParamByName("Meldezeit")->Value = StMi; Query1->ParamByName("Benutzer")->Value = Edit8->Text; Query1->ParamByName("ENR")->Value = ComboBox1->Text; Query1->Active = true;
-
die Hochkommata sind hier sinnlos, da mit Query1->ParamByName("Benutzer")->Value automatisch die Strings, Floats u.a. entsprechend eingesetzt werden,
allerdings solltest du den Wert für Pos in Hochkommata schreiben, da
Die datenbank ist einfach auchgebaut Alle felder sind A(lpha) nur das erste (Id) ist ein zähler und als primärschlüsse deklariert.
... Query1->SQL->Add("INSERT INTO EDS_data.db (Pos, Von, An, Meldung, Meldedatum, Meldezeit, Benutzer, ENR) VALUES ('1',:Von,:An,:Meldung,:Meldedatum,:Meldezeit,:Benutzer,:ENR)"); ...
-
Jetzt habe ich denn fehler hier:
http://www.blubb-city.de/fehlermeldung4.jpgBald habe ich alle fehlermeldungen durch glaube ich.
-
Jetzt habe ich denn fehler hier:
http://www.blubb-city.de/fehlermeldung4.jpgBald habe ich alle fehlermeldungen durch glaube ich.
DOPPELPOST: Sorry ich weiss garnicht wie das passiert ist
-
Query1->Active = true;Das ist schuld (siehe Posting von KlausB). Das muß heißen:
Query1->ExecSQL();Grüße Joe_M.
-
Es klappppt!!
Dank an alle die mir hier tips gegeben haben hätte aber noch eine frage und zwar möchte ich nach dem INSERT noch ein SELECT machen um die anzeige im DBGrid zu aktualliersiern jedoch bekommen ich diese Fehlermeldung wenn ich den code ausführe.http://www.blubb-city.de/fehlermeldung4.jpg
Query1->SQL->Clear(); Query1->SQL->Add("SELECT Pos, Von, An, Meldung, Meldedatum, Meldezeit, Benutzer, ENR FROM 'EDS_data.db'"); Query1->ExecSQL();
-
Habe es hinbekommen war irgend ein fehler wo dran es lag weiss ich aber nicht.
Danke euch allen.

-
Hallo
Es wird Zeit fuer ein Datenbanktut.
Query1->ExecSQL();
besser waere da
Query1->Open();Mfg
Klaus