| Autor |
Beitrag |
segfault
Hält's aus hier
Beiträge: 4
|
Verfasst: Di 28.01.03 21:25
hallo
ich bin recht neu in delphi, und auch in datenbankprogrammierung.
eigentlich hab ich nichts schwieriges vor  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
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: 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..
mfg
kiwicht
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: 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
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mi 29.01.03 01:14
Ist das SQL, oder was andres ?
Gruß
Hansa
|
|
grayfox
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: 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 
Hält's aus hier
Beiträge: 4
|
Verfasst: 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
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mi 29.01.03 12:24
Ei wärs den mit:
active := false
Gruß
Hansa
|
|
segfault 
Hält's aus hier
Beiträge: 4
|
Verfasst: Mi 29.01.03 12:36
| hansa hat folgendes geschrieben: | Ei wärs den mit:
active := false
Gruß
Hansa |
mah! ich bin aber auch wirklich zu blöd!
hehe... damit gehts natuerlich
ich finds aber trotzdem komisch, das nach einem post nicht gleich geschrieben wird...
danke auf jeden fall
mfg
segfault
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: 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
      
Beiträge: 800
win98, winXP
D4 Standard; D6 Personal
|
Verfasst: 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
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: 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 ???
Gruß
Hansa
|
|