Daten werden nicht übernommen
-
- Beiträge: 205
- Registriert: So 2. Dez 2007, 20:47
- OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
- CPU-Target: xxBit
- Wohnort: Schweiz
Daten werden nicht übernommen
Hallo ich mache wahrscheinlich einen Anfängerfehler, doch ich komme nicht darauf.
Ich habe eine Firebird Datenbank mit einem TDBGrid verbunden und navigieren mit dem TDBNavigator.
Nun kann ich Daten erfassen und ändern und solange das Programm läuft, ist alles bestens. Doch sobald ich das Programm verlasse, sind die Aenderungen verschwunden.
Was mache ich falsch.
Peter
Ich habe eine Firebird Datenbank mit einem TDBGrid verbunden und navigieren mit dem TDBNavigator.
Nun kann ich Daten erfassen und ändern und solange das Programm läuft, ist alles bestens. Doch sobald ich das Programm verlasse, sind die Aenderungen verschwunden.
Was mache ich falsch.
Peter
-
- Beiträge: 205
- Registriert: So 2. Dez 2007, 20:47
- OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
- CPU-Target: xxBit
- Wohnort: Schweiz
Was ich mache
Also ich habe einfach eine Firbird Datenbank mit einem Grid verbunden und navigiere mit dem Navigator. Klicke auf das + erfasse einen Datensatz, klicke auf Speichern. Alles bestens, die Daten sind da, doch sobald ich das PRG verlasse, sind die Daten weg.
Peter
Peter
-
- Beiträge: 440
- Registriert: So 10. Dez 2006, 14:59
- OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
- CPU-Target: 64Bit
- Kontaktdaten:
http://www.lazarusforum.de/viewtopic.php?t=1055" onclick="window.open(this.href);return false;
hatte das selbe problem nur mit MySQL | SQLite
versuchs mal ohne DBNavigator
und stell beim DBGrid AlwaysShowEditor auf true , sobald ich den navi gelöscht habe konnte ich die daten speichern
hatte das selbe problem nur mit MySQL | SQLite
versuchs mal ohne DBNavigator

-
- Beiträge: 205
- Registriert: So 2. Dez 2007, 20:47
- OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
- CPU-Target: xxBit
- Wohnort: Schweiz
Wo finde ichAlwaysShowEditor
Wo finde ich das AlwaysShowEditor ?
Und ohni Navigator, wie navigiertst Du dann?
Peter
Und ohni Navigator, wie navigiertst Du dann?
Peter
-
- Beiträge: 205
- Registriert: So 2. Dez 2007, 20:47
- OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
- CPU-Target: xxBit
- Wohnort: Schweiz
Ergänzung
Vielleicht hilft das weiter:
Ich habe nur die Datenbank verbunden und mit select * from die Tabelle angewählt. Sonst habe ich keine Einstellungen vorgenommen.
Was mache ich falsch oder was muss ich wo ergänzen.
Peter
Ich habe nur die Datenbank verbunden und mit select * from die Tabelle angewählt. Sonst habe ich keine Einstellungen vorgenommen.
Was mache ich falsch oder was muss ich wo ergänzen.
Peter
-
- Beiträge: 440
- Registriert: So 10. Dez 2006, 14:59
- OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
- CPU-Target: 64Bit
- Kontaktdaten:
Nur ein DBGrid drauf
beim Datasource die AutoEdit auf True
beim DBGrid:
AutoEdit = true
unter Options:
dgEditing = true
dbAlwaysShowEditor = true
im Query einfach SELECT * FROM tabelle;
und dann kannste einfach mit der Maus/Pfeiltasten durch die Datensätze Navigieren, sowie editieren, neue hinzufügen ,nur wie man dann daraus welche löscht habe ich selbst noch nicht eingebaut
also zumindest funktioniert es bei mir ^^
beim Datasource die AutoEdit auf True
beim DBGrid:
AutoEdit = true
unter Options:
dgEditing = true
dbAlwaysShowEditor = true
im Query einfach SELECT * FROM tabelle;
und dann kannste einfach mit der Maus/Pfeiltasten durch die Datensätze Navigieren, sowie editieren, neue hinzufügen ,nur wie man dann daraus welche löscht habe ich selbst noch nicht eingebaut
also zumindest funktioniert es bei mir ^^
-
- Beiträge: 205
- Registriert: So 2. Dez 2007, 20:47
- OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
- CPU-Target: xxBit
- Wohnort: Schweiz
Ev. Lösung
Also wenn ich im On Close folgedede Befehle, die ich vom Alfred erhalten habe eingebe, dann geht es:
SQLQUERY1.UpdateMode := upWhereChanged;
SQLQUERY1.ApplyUpdates;
SQLTransaction1.Commit;
SQLQUERY1.close;
SQLQUERY1.SQL.TEXT := 'select * from test';
SQLQUERY1.Active := true;DBGRID1.SetFocus;
Kann man dies noch abkürzen?
Peter
SQLQUERY1.UpdateMode := upWhereChanged;
SQLQUERY1.ApplyUpdates;
SQLTransaction1.Commit;
SQLQUERY1.close;
SQLQUERY1.SQL.TEXT := 'select * from test';
SQLQUERY1.Active := true;DBGRID1.SetFocus;
Kann man dies noch abkürzen?
Peter
-
- Beiträge: 205
- Registriert: So 2. Dez 2007, 20:47
- OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
- CPU-Target: xxBit
- Wohnort: Schweiz
nein reicht nicht
Leider reicht ApplyUpdates nicht. Nur die letzte Zeile kann man weglassen, sonst bricht alles zusammen.
Ich habe es nur mit SQLQUERY1.ApplyUpdates; und auch nur mit ApplyUpdates; versucht, geht beides nicht. Oder habe ich Dich falsch verstanden?
Peter
Ich habe es nur mit SQLQUERY1.ApplyUpdates; und auch nur mit ApplyUpdates; versucht, geht beides nicht. Oder habe ich Dich falsch verstanden?
Peter
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
natürlich sqlquery.applyupdates. du solltest dich wirklich mal etwas mit der materie befassen programmieren ist nicht sinnloses zusammenkopieren von codeschnipseln von denen man nicht weiss was sie tun.
commit und applyupdates schliessen sich schonmal gegenseitig aus das ist ziemlicher schwachsinn
die Update methode must auch nicht jedesmal setzen und das refresh also close und open ka ob du das brauchst
commit und applyupdates schliessen sich schonmal gegenseitig aus das ist ziemlicher schwachsinn
die Update methode must auch nicht jedesmal setzen und das refresh also close und open ka ob du das brauchst
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
In der LazInfo ist ein Beispiel für MySQL drinnen, das so eigntlich für jedes System fast läuft - nur die Verbindung ist auszutauschen. Der Code ist auch in den LazSnippets drinnen - so kann man sich das Ansehen. Vor allen ist es ein Beispiel, wie man Testdatensätze in größeren Mengen erzeugen kann, für Testläufe. Damit kann man sich etwas herumspielen.Christian hat geschrieben:du solltest dich wirklich mal etwas mit der materie befassen programmieren ist nicht sinnloses zusammenkopieren von codeschnipseln von denen man nicht weiss was sie tun.
Vor allen, wie schon Christian anmerkte, Langsam sich mit den Basics auseinandersetzen. Solange man nicht weis, was ein Commit ist, sollte man es nicht verwenden.
Übrigends impliziert ein ApplyUpdates ein automatisches Commit (Wenn der Programmier nicht vorher was händisch verbockt hat).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).