Odświeżanie dbgrid

0

witam mam problem z odświeżaniem dbgrida. Tzn. jak aplikacja działa i podlądam tabele do której wprowadzam rekord to nowo wprowadzony rekord się tam znajduje. Jednak gdy wyłączę działanie programu i wejdę na formatkę na której znajduje się dbgrid do którego wprowadzam dane tam tego rekordu już nie ma. jeśli zamknę i otworzę delphi to ten rekord już będzie w tym gridzie oto kod jak to robię.

procedure TForm14.Button1Click(Sender: TObject);
begin
 Form10.IBTPlyta.append;
 Form10.IBTPlyta.FieldValues['id_plyty_glownej']:=edit3.text;
 Form10.IBTPlyta.FieldValues['karta_dzwiekowa']:=combobox1.text;
 Form10.IBTPlyta.FieldValues['karta_sieciowa']:=combobox4.text;
 Form10.IBTPlyta.FieldValues['karta_graficzna']:=combobox5.text;
 Form10.IBTPlyta.FieldValues['rodzaj_pamieci']:=combobox6.text;
 Form10.IBTPlyta.FieldValues['maksymalna_wielkosc_pamieci']:=combobox7.text;
 Form10.IBTPlyta.FieldValues['format']:=combobox8.text;
 Form10.IBTPlyta.FieldValues['czestotliwosc_magistrali_pamieci']:=edit1.text;
 Form10.IBTPlyta.FieldValues['dodtkowe_parametry']:=edit2.text;
 Form10.IBTPlyta.Post;
 //form10.IBQPlyta.close;
 //form10.IBQPlyta.open;
 //form3.ibtransaction1.CommitRetaining;
 form10.IbQPlyta.Close;
 form10.IBQPlyta.SQL.Clear;
 form10.IBQPlyta.SQL.Text:='select * from plyty_glowne' ;
 form10.IBQPlyta.Open;
 form10.dbgrid1.Refresh;

 form3.ibtransaction1.CommitRetaining;

 TabbedNotebook1.PageIndex:=1;

proszę o pomoc

0

Pod parametrami:

with IBQplyta, sql do
begin
Close;
Clear;
Add('SELECT * FROM PLYTY_GLOWNE');
Open;
end;
end;

0

Najpierw odświeżasz a na samym końcu Commit'ujesz, sekwencja powinna wyglądać tak:
Post
Commit
Refresh

0

http://4programmers.net/Forum/viewtopic.php?id=94236&start=10

Jednak to chyba wyjaśni problem...

Zastanawiam się jaki jest skuteczny sposób odświeżenia bazy.

0

post automatycznie odświeża dataseta. Natomiast jeśli ktoś potrzebuje użyć refresh to:

ds.close;
ds.open;

Można do tego jeszcze bookmarki dołożyć.

0
 form10.IbQPlyta.Close;
 form10.IBQPlyta.SQL.Clear;
 form10.IBQPlyta.SQL.Text:='select * from plyty_glowne' ;
 form10.IBQPlyta.Open;
 form10.dbgrid1.Refresh;

Po co ten refresh jak wywołujesz Selecta? :)
Refresh i tak nie działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1