Autor Beitrag
Denny0110
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 20.11.09 12:46 
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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Fr 20.11.09 12:55 
Müssen die Felder bei Access wirklich mit AND getrennt werden? :gruebel:
Sollte es nicht so aussehen:
ausblenden SQL-Anweisung
1:
UPDATE TABELLE SET Feld1 = Wert1, Feld2 = Wert2, Feld3 = Wert3 Where Bedinung					

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Denny0110 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: 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 ",".