Problem mit Adoquery und Update Sqlstatement
-
Hi Leutz,
ich möchte die Werte einer Access Tabelle updaten und bekomme ständig die Fehlermeldung "Syntaxfehler in Update SQL Anweisung".
Ich habe schon alles mögliche probiert.
void __fastcall TForm3::Button5Click(TObject *Sender) { int *pID =&id_h; dbzugriff->ADOQuery1->Close(); dbzugriff->ADOQuery1->SQL->Clear(); dbzugriff->ADOQuery1->SQL->Add("update Hausverwaltung set"); dbzugriff->ADOQuery1->SQL->Add("H-Name = '" +Edit1->Text+"'"); dbzugriff->ADOQuery1->SQL->Add(","); dbzugriff->ADOQuery1->SQL->Add("H-Telefon='"+ Edit2->Text+"'" ); dbzugriff->ADOQuery1->SQL->Add(","); dbzugriff->ADOQuery1->SQL->Add("H-Fax= '"+Edit3->Text+"'"); dbzugriff->ADOQuery1->SQL->Add(","); dbzugriff->ADOQuery1->SQL->Add("H-Straße= '"+Edit4->Text+"'"); dbzugriff->ADOQuery1->SQL->Add(","); dbzugriff->ADOQuery1->SQL->Add("H-Ort='"+Edit5->Text+"'"); dbzugriff->ADOQuery1->SQL->Add(","); dbzugriff->ADOQuery1->SQL->Add("H-PLZ='"+Edit6->Text+"'"); dbzugriff->ADOQuery1->SQL->Add("WHERE HausverwaltungID ="+IntToStr(*pID)); dbzugriff->ADOQuery1->ExecSQL(); }wäre super wenn mir jemand helfen könnte.
thx
-
Versuch doch mal die Spaltennamen in Anführungszeichen zu setzen, z.B. "H-Name". Oder verwende - falls möglich - keine
Spaltennamen mit Minus-Zeichen. Vielleicht anstatt H-Name lieber H_Name. Meine Vermutung ist nämlich, dass H-Name als
H - Name interpretiert wird. Ist allerdings nur ne Vermutung.
Ansonsten könntest Du natürlich mal versuchen das Statement direkt auf die Datenbank abzuschicken (z.B. im SQL-Explorer).Gruß,
Alexander
-
Hi,
Alexander schrieb:
Oder verwende - falls möglich - keine
Spaltennamen mit Minus-Zeichen. Vielleicht anstatt H-Name lieber H_Name. Meine Vermutung ist nämlich, dass H-Name als
H - Name interpretiert wird. Ist allerdings nur ne Vermutung.Deine Vermutung war absolut richtig!

Ich habe den ganzen Tag damit verbracht, die SQL Abfrage ohne Fehler hinzubekommen. Das es an den Feldnamen liegen könnte, hätte ich jetzt nicht gedacht.Super!
thx nochmal!mfg
-
dbzugriff->ADOQuery1->SQL->Add("update Hausverwaltung set"); dbzugriff->ADOQuery1->SQL->Add("H-Name = '" +Edit1->Text+"'");dürfte nur an den fehlenden Leerzeichen liegen "update Hausverwaltung setH-Name ..."
Sollte wohl so eher funktionieren.
dbzugriff->ADOQuery1->SQL->Add("update Hausverwaltung set "); dbzugriff->ADOQuery1->SQL->Add("H-Name = '" +Edit1->Text+"'");
-
fragg schrieb:
dürfte nur an den fehlenden Leerzeichen liegen "update Hausverwaltung setH-Name ..."
Dachte ich auch ein Moment lang, aber Add() fügt automatisch einen Zeilenvorschub ein.
Gruß,
Alexander