Entwickler-Ecke
Datenbanken - wann werden daten geschrieben?
segfault - Di 28.01.03 21:25
Titel: wann werden daten geschrieben?
hallo
ich bin recht neu in delphi, und auch in datenbankprogrammierung.
eigentlich hab ich nichts schwieriges vor :wink: aber sogar das klappt nicht :( warum werden nach einem Table1.Post; die daten nicht geschrieben, sondern erst dann wenn ich das programm beende?
ich mache folgendes (wie in der hilfe):
Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure TForm1.Button1Click(Sender: TObject); begin Table1.Append; Table1.FieldValues['ALPHANUMERIC'] := Edit1.text; Table1.FieldValues['INTEGER'] := StrToInt(Edit2.text); Table1.Post; end; |
nachdem ich aber auf Button1 geklickt habe, steht nichts in der Tabelle, eben erst wenn ich das programm beende. mach ich etwas falsch? bitte helft mir. btw: ich verwende .dbf dateien
mfg
benni
Moderiert von
Tino: Code-Tags hinzugefügt.
kiwicht - Di 28.01.03 21:34
hmm.. also entweder die Daten-Table 'refreshen', also:
Table.Refresh
oder einfach nur dein Grid, also die Tabelle zum Anzeigen, 'refreshen' mit
Grid.Refresh
Wenn nicht, versuchs auf die rabiate Methode, und zwar deine Datenbank schliessen und nochmal öffnen, weil nichts anderes passiert wenn du dein Programm schliesst und wieder startest...
hoffe das hilft... wenn nicht, musste wohl auf die wahren prof´s hier warten.. :D
mfg
kiwicht
grayfox - Mi 29.01.03 01:00
hallo kiwicht!
schau mal im OI deiner tabelle das property 'CachedUpdates' an. dort sollte in deinem fall 'false' eingetragen sein.
mfg, stefan
hansa - Mi 29.01.03 01:14
Ist das SQL, oder was andres ?
Gruß
Hansa
grayfox - Mi 29.01.03 02:06
nein, das ist kein SQL, sondern er arbeitet mit den ganz normalen methoden, die ein table kann.
mfg, stefan
segfault - Mi 29.01.03 11:14
Hallo
ein refresh bringt auch nix :-( wie kann ich die datenbank neu starten? ich mein... ich arbeite nur mit .dbf-dateien. also ich mach zuerst:
Quelltext
1: 2:
| Table1.DatabaseName := 'verzeichnis\'; Table1.TableName := 'file.dbf'; |
danach
Quelltext
1:
| Table1.Active := True; |
Table1.Close oder sowas gibts ja nicht, und CloseDatabase kann ich nicht verwenden, oder? zumindest weiss ich nicht welchen parameter ich da angeben soll.
mfg
segfault
Moderiert von
Tino: Code-Tags hinzugefügt.
hansa - Mi 29.01.03 12:24
Ei wärs den mit:
active := false 8)
Gruß
Hansa
segfault - Mi 29.01.03 12:36
| hansa hat folgendes geschrieben: |
Ei wärs den mit:
active := false 8)
Gruß
Hansa |
mah! ich bin aber auch wirklich zu blöd! :autsch:
hehe... damit gehts natuerlich :-)
ich finds aber trotzdem komisch, das nach einem post nicht gleich geschrieben wird...
danke auf jeden fall :-)
mfg
segfault
hansa - Mi 29.01.03 12:54
hehe, "nicht verzagen Hansa fragen !" Meine Frage nach SQL zielte hierauf ab, da weiß ich nämlich genau, daß open und close nichts anderes machen, als active auf true oder false zu setzen. Die Daten werden gepuffert, um Schreibvorgänge zu beschleunigen. Das hat dann diesen manchmal unerwünschten Nebeneffekt.
Gruß
Hansa
grayfox - Mi 29.01.03 19:09
@segfault: warum gibts kein table.close? damit schliesst du die tabelle und schreibst die daten endgültig weg. ich wusste ja nicht, dass du das nicht wusstest. apropos... es gibt auch ein table.open *g*
mfg, stefan
hansa - Mi 29.01.03 19:24
| hansa hat folgendes geschrieben: |
| ... da weiß ich nämlich genau, daß open und close nichts anderes machen, als active auf true oder false zu setzen.... |
Lest ihr immer nur einen und zwar den letzten Satz ??? :shock:
Gruß
Hansa
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!