DBGrid - jak odświe?żyć jeśli się wstawiło

0

Mam dość rozbudowaną aplikację bazodanową(Interbase) i wstawian rekordy do tabel za pomocą różnych komponentów IBQuery. Natomiast DBGrid jest połączony z DataSource1 a ten z kolei z IBQuery1. W IBQuery1 mam zapytanie Select * from tabela i w DbGrid wyświetlają sie rekordy - natomiast już po tym jak je wyświetlę jakieś rekordy, jeżeli dodam do bazy danych za pomocą innego IBQuery(znajdującego się na innej formatce) nowy rekord i ponownie wyświetlam rekordy na DBGrid nowego rekordu nie ma. Po ponownym uruchomieniu programu rekord już jest. Czyli problem polega na tym żeby jakoś <ort>odświerzyć </ort>DBGrid żeby pokazał wszystkie rekordy. IBTransaction.Commit jest po każdym wpisaniu rekordu - czyli rekordy na pewno są zapisane w bazie danych Interbase(zresztą sprawdzam za pomocą Interbase to to faktycznie są one zapisane). Pomóżcie, bo normalnie nie wiem jak to rozwiązać a w żadnej literaturze nic na ten temat nie ma.

0

W IBQuery1 mam zapytanie Select * from tabela i w DbGrid wyświetlają sie rekordy

Wydaje mi się żepo zmianie danych musisz ponownie wykonać to zapytanie .

0

Potrzeba matką wynalazków - więc sobie sa odpowiem na to pytanie które zadałem - trzeba zamknąć połączenie z bazą danych i ponownie się z nią połączyć czyli dla komponentu IBDataBase1 połączonego z komponentem DBGrid1 należy napisać coś takiego

IBDataBase1.Connected:=False; //kończymy połączenie z bazą danych
IBDataBase1.Connected:=True; //i ponownie się z nią łączymy

wtedy wszystkie rekordy będą pobierane z bazy na bieżąco do pytania Select * from tabela

0

Właśnie zadawałem to samo zapytanie ale brakowalo mi tego żeby ponownie rozłączyć się z baza i połączyć po raz kolejny - bo jak tego nie miałem to to zapytanie było gdzieś pamiętane i zamiast wykonywać się od nowa to po prostu były wcześniej zapamiętane wyniki tego zapytania były wyświetlane - nawet jeżeli rekodry się zmieniły - ale dzięki za wskazówkę

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