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.
Vielen Dank im Voraus!
Denny
Moderiert von
Narses: Quote- durch Delphi-Tags ersetzt