Entwickler-Ecke

Datenbanken - SQL: Update funktioniert nicht


Denny0110 - Fr 20.11.09 12:46
Titel: SQL: Update funktioniert nicht
Hi! :)
Ich möchte ein Adressbuch programmieren. Die Daten werden in einer Accessdatenbank abgespeichert. Um die Daten nach einer Änderung zu speichern, führe ich einen UPDATE-Befehl mit SQL aus:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TFRMABook.mnuSaveClick(Sender: TObject);
begin
  DM.ADOQuery.SQL.Clear;
  DM.ADOQuery.SQL.Add('UPDATE AddressBook SET Titel="'</span>+EDTTitel.Text+<span class="codestring">'" and Name="'</span>+EDTName.Text+<span class="codestring">'" and FirstName="'</span>+EDTFName.Text+<span class="codestring">'" and Birthday="'</span>+EDTBDay.Text+<span class="codestring">'" and  Street="'</span>+EDTStreet.Text+<span class="codestring">'" and AreaCode="'</span>+EDTACode.Text+<span class="codestring">'" and Town="'</span>+EDTTown.Text+<span class="codestring">'" and Country="'</span>+EDTCountry.Text+<span class="codestring">'" and MapLink="'</span>+EDTLocate.Text+<span class="codestring">'" and RouteLink="'</span>+EDTRoute.Text+<span class="codestring">'" and Phone="'</span>+EDTPhone.Text+<span class="codestring">'" and Mobile="'</span>+EDTMobile.Text+<span class="codestring">'" and Email="'</span>+EDTEmail.Text+<span class="codestring">'" and ICQ="'</span>+EDTICQ.Text+<span class="codestring">'" and MSN="'</span>+EDTMSN.Text+<span class="codestring">'" and Skype="'</span>+EDTSkype.Text+<span class="codestring">'" and Comment="'</span>+MEMComm.Lines.Text+<span class="codestring">'" WHERE ID="'</span>+LBLID.Caption+<span class="codestring">'";');
  DM.ADOQuery.ExecSQL;
  Dm.ADOQuery.Close;
end;

Leider werden die Daten nicht gespeichert. Manchmal speichert er den Titel, aber wenn das passiert, dann auch nur ein einziges Mal. Wenn ich die Update-Anweisung auf 1 Element reduziere, funktionert es. Kann es sein, dass die SQL-Anweisung zu lang ist? Ich sehe es auch nicht ein für jedes Element eine eigene Anweisung zu schreiben. :twisted:

Vielen Dank im Voraus!
Denny

Moderiert von user profile iconNarses: Quote- durch Delphi-Tags ersetzt


Nersgatt - Fr 20.11.09 12:55

Müssen die Felder bei Access wirklich mit AND getrennt werden? :gruebel:
Sollte es nicht so aussehen:

SQL-Anweisung
1:
UPDATE TABELLE SET Feld1 = Wert1, Feld2 = Wert2, Feld3 = Wert3 Where Bedinung                    


Denny0110 - Fr 20.11.09 13:04

Oh, danke! Das hat funktioniert. :)
Ich hätte gedacht, in der Schule hätten wir das auch immer mir "and" gemacht. Normalerweise habe ich das immer mit "and" gemacht. Sei es drumm, jetzt geht es eben mit ",".