Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankänderung speichern? (https://www.delphipraxis.net/16427-datenbankaenderung-speichern.html)

PhöniX 16. Feb 2004 22:14


Datenbankänderung speichern?
 
hi..
Ich hab ein Prgramm mit einem DatenbankGrid..
Wenn ich das Programm starte und im Grid was ändere und danahc das Programm schließe wird das alte beim nächsten Programmstart wieder angezeigt..
Beispiel:

Programmstart
Im Grid Hallo zu Tschüss ändern
Programmende
...
Programmstart
Im Grid gucken
steht immer noch Hallo


Warum wird die Änderung nicht gespeichert? :gruebel:

grayfox 17. Feb 2004 00:42

Re: Datenbankänderung speichern?
 
hallo phönix!

das ist ja ganz klar, denn in deinem programm fehlt eine zeile.
versuchs mal so -->

Code:
Programmstart
Im Grid Hallo zu Tschüss ändern
[b]tabelle.post[/b]
Programmende
falls du ein post verwendest, dann bitte mehr infos...

mfg, stefan

Robert_G 17. Feb 2004 02:50

Re: Datenbankänderung speichern?
 
Vorweg: Ich kenne mich mit der BDE nicht besonders aus (außerdem bin ich gerade ziemlich :drunken: ).
Schaue mal, ob du in deinem DataSet eine Option/Eigenschaft "Commit on Post" oder so ähnlich findest. Wie du in der BDE ein Commit auslöst, kann ich dir jetzt gerade nicht sagen. Suche einfach einfach mal in den Methoden deines DataSets oder der Connection danach.

PhöniX 17. Feb 2004 10:12

Re: Datenbankänderung speichern?
 
OK...Es geht jetzt.Danke

PhöniX 22. Feb 2004 11:06

Re: Datenbankänderung speichern?
 
Hmm...Allerdings nun:

Programmstart
Im Grid Hallo zu Tschüss ändern
Programmende
...
Programmstart
Im Grid gucken
steht jetzt Tschüss
Programmende
[PC runterfahren]
[PC hochfahren]
Programmstart
Im Grid gucken
steht jetzt wieder Hallo

Warum wird es bei runterfahren nicht gespeichert??? :gruebel:

APP 22. Feb 2004 12:08

Re: Datenbankänderung speichern?
 
Hallo PhöniX,

versuche mal FlushBuffers im OnAfterPost der/des Tabelle/Query, oder halt nach dem Ändern der Daten, auszuführen.

Zitat:

Zitat von OH
Mit der Methode FlushBuffers können Sie alle Änderungen eintragen, die in den Datensatzpuffer geschrieben wurden.

procedure FlushBuffers;

Beschreibung

Die Methode FlushBuffers veranlaßt die Datenmenge, alle anstehenden Änderungen (einschließlich zwischengespeicherter Aktualisierungen) in die Datenbank einzutragen. Verwenden Sie FlushBuffers anstelle der Methode CheckBrowseMode, wenn das Eintragen zwischengespeicherter Datensätze sichergestellt werden muß.


PhöniX 23. Feb 2004 16:04

Re: Datenbankänderung speichern?
 
Kannst du mir mal den konkreten Source für den Befehl geben??

grayfox 23. Feb 2004 17:30

Re: Datenbankänderung speichern?
 
hallo phönix!

einmal gehts - einmal gehts nicht... gibts nicht
Zitat:

OK...Es geht jetzt.Danke
langsam wär etwas quellcode deinerseits gefragt - meine antwort war ja auch nur ein schuss ins blaue

eine einträge in einer tabelle änderst du so:
Code:
  table1.open;
  table1.edit;
  table1.FieldByName('FeldName').asString:= 'hallo';
  table1.post;
  table1.close
grundsätzlich genügen die obenangeführten zeilen, um einen eintrag zu ändern - sofern der zu ändernde eintrag gleich der erste datensatz ist. sonst gibts ja noch locate, gotokey, etc

Zitat:

Kannst du mir mal den konkreten Source für den Befehl geben??
:?:

die korrekte syntax von flushbuffers lautet 'table1.flushbuffers' und passt am besten vor 'table1.close'.

ich vermute fast, dass du dein programm seit neuestem 'unsauber' beendest und deshalb die änderung in der tabelle nicht auftaucht.

poste mal code, dann reden wir weiter

mfg, stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz