SOLVED / SQL Update funktioniert nicht

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Bernie110
Beiträge: 81
Registriert: Mo 10. Feb 2020, 17:43

SOLVED / SQL Update funktioniert nicht

Beitrag von Bernie110 »

Hallo Zusammen,

ich bin neu hier und habe sehr wenig Erfahrung im Umgang mit Lazerus und Pascal. Jedoch kann ich auf 10 Jahre MS Access zurückgreifen. :D
Habe leider niemanden, der mir das so von Grund auf beibringt. Muss mir alles via Google und Youtube irgendwie selbst bei bringen.
Nun bin ich an einen Punkt gelangt, an welchem mir die Suche im Netz so gar nicht weiterhilft.
Vorab, bitte verzeiht mir dumme und für euch selbstverständliche Fragen ;-) Ich hoffe so Neulinge wie ich sind hier willkommen. Wenn nicht bitte gleich sagen ;-) Danke.

So nun zu meinem Problem.

Ich habe ein kleines Projekt in Lazerus begonnen und gleich mal an eine MySQL DB angeschlossen.
Daten kann ich mir auch anzeigen lassen. Filtern kein Problem.... nur mit dem Update will und will es nicht funktionieren.
Er scheint aus welchen Gründen auch immer den SQL String nicht zu übergeben. Der Code läuft ohne Fehler durch. Im Ausgeführten Zustand, ändert er in Lazerus auch die Daten..nur auf dem SQl Server ändert sich nix.

Hier mal die Prozedur : Vll hat jemand nen Tip. Hab schon alles versucht.. mit Parametern ohne Parameter... Die SQL_ID.text lese ich aus dem Grid aus. Die wird auch richtig angezeigt.
Der SQL String sollte eigentlich so aussehen : update bestellungen set AB_bestaetigt_von = ''May Mustermann''' WHERE ID= 3; ..tut er auch ... hab es mit Showmessage überprüft. aber er scheint ihn nicht zuübergeben oder die Connection ist nicht vorhanden.. Keine Ahnung... wie gesagt.. ich bekomme keine Fehlermeldung... Vorab herzlichen Dank für eure Hilffe ! Lg Bernie

Code: Alles auswählen

procedure TFrmBestellung.BtSaveClick(Sender: TObject);
  var
    SQL: String;
   XID : String;
   XUser: String;
begin
 
 
  XUser:= SQL_AB_USER.text ;
  XID := SQL_ID.text)
 
  FrmSQLConnection.SQLQuery3.Close;
  FrmSQLConnection.SQLQuery3.SQL.Clear;
 
  SQL := ('update bestellungen set AB_bestaetigt_von = '''+XUser+''' WHERE ID= '''+XID+''';');
  FrmSQLConnection.SQLQuery3.SQL.ADD (SQL);
  FrmSQLConnection.SQLQuery3.ExecSQL;
 
 
  BitBtn1.setfocus;
  BtSave.enabled :=False;
 
  FrmSQLConnection.SQLQuery3.Close;
  FrmSQLConnection.SQLQuery3.SQL.Clear;
 
 
 
Zuletzt geändert von Bernie110 am Mo 10. Feb 2020, 19:36, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4175
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: SQL Update funktioniert nicht

Beitrag von af0815 »

Grundlagen u.a. hier https://github.com/afriess/LazInfos/blo ... zInfos.pdf

Was dir fehlt, findest du in Kapitel 5.1.1. unter 'wie kommen die geänderten Daten in die Datenbank' -> ApplyUpdates und Transaktionsmanagment. Ein Server ist keine DesktopDB.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Bernie110
Beiträge: 81
Registriert: Mo 10. Feb 2020, 17:43

Re: SQL Update funktioniert nicht

Beitrag von Bernie110 »

af0815 hat geschrieben:Grundlagen u.a. hier https://github.com/afriess/LazInfos/blo ... zInfos.pdf

Was dir fehlt, findest du in Kapitel 5.1.1. unter 'wie kommen die geänderten Daten in die Datenbank' -> ApplyUpdates und Transaktionsmanagment. Ein Server ist keine DesktopDB.


Hi danke für deine Antwort. Das war es nicht.. Aber du hast mich auf den richtigen Gedanken gebracht ;-) also danke.. habs hinbekommen.
Lg Benrie

relocate
Beiträge: 53
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4)
CPU-Target: 32Bit

Re: SQL Update funktioniert nicht

Beitrag von relocate »

Bernie110 hat geschrieben:Hi danke für deine Antwort. Das war es nicht.. Aber du hast mich auf den richtigen Gedanken gebracht ;-) also danke.. habs hinbekommen.
Lg Benrie


Könnte man der Nachwelt auch hinterlassen wo das Problem lag und wie die Lösung aussieht.

Bernie110
Beiträge: 81
Registriert: Mo 10. Feb 2020, 17:43

Re: SQL Update funktioniert nicht

Beitrag von Bernie110 »

relocate hat geschrieben:
Bernie110 hat geschrieben:Hi danke für deine Antwort. Das war es nicht.. Aber du hast mich auf den richtigen Gedanken gebracht ;-) also danke.. habs hinbekommen.
Lg Benrie


Könnte man der Nachwelt auch hinterlassen wo das Problem lag und wie die Lösung aussieht.


Klar ;)

Das war mein ursprünglicher Code

FrmSQLConnection.SQLQuery3.Close;
FrmSQLConnection.SQLQuery3.SQL.Clear;

SQL := ('update bestellungen set AB_bestaetigt_von = '''+XUser+''' WHERE ID= '''+XID+''';');
FrmSQLConnection.SQLQuery3.SQL.ADD (SQL);
FrmSQLConnection.SQLQuery3.ExecSQL;


und das fehlte zum Schluss:
FrmSQLConnection.SQLTTransaction1.Commit;


Lg Bernie

relocate
Beiträge: 53
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4)
CPU-Target: 32Bit

Re: SOLVED / SQL Update funktioniert nicht

Beitrag von relocate »

Danke.

Wie so oft.
Kleine Ursache, große Wirkung.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4175
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: SOLVED / SQL Update funktioniert nicht

Beitrag von af0815 »

Wenn man das AutoCommit verwendet benötigt man das manuelle Commit nicht und funktioniert recht gut, wenn man kein Transaktionsmanagement benötigt.

AutoCommit wird je nach DB-Komponente (Connection) anders genannt/angesteuert.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten