Firebird odświeżanie danych bez rozłączania z bazą

Odpowiedz Nowy wątek
2006-11-14 20:55
Dice
0

Witam,
W jaki sposób odświeżyć dane z bazy Firebird bez rozłączania się z nią i ponownego łączenia?
W bazie mam zdefiniowane trigger'y które po zdarzeniu insert, update, delete wysyłają odpowiednią informacje. Moja aplikacja to odbiera i wykonuje ponowne zapytanie 'SELECT * FROM ...'. Dane jednak nie są odświeżane, muszę się rozłączyć i połączyć z bazą na nowo aby zobaczyć zmiany. Do łączenia z bazą wykorzystuję komponenty InterBase.

Pozostało 580 znaków

2006-11-14 21:05
0

tranzakcje + commit - poszukaj informacji na ten temat

 try
        Modul.Tranzakcja.Active := false;
        Modul.Tranzakcja.StartTransaction;
        with Modul.Zapytanie0 do
            begin
            Active := false;
            SQL.Clear;
            SQL.Add(zapytanie);
            ParamByName('ID_ODDZIALU').AsInteger := Modul.Zalogowany.id_oddzialu;
            Active := true;
            while not EOF do
                begin
                //tu wykonuję operacje odczytu
                Next;
                end;
            Active := false;
            end;
        Modul.Tranzakcja.Commit;
        //i potwierdzam całą operację - w tym momencie nie wystąpił żaden błąd itp.
    except
        Modul.Tranzakcja.Rollback;
        //jeśli coś się nie powiodło, cofam wszystkie operacje jakie wykonałem od StartTransaction  
        end;

To jest kawałek z delphi 6 na wbudowanych komponentach do obsługi IB - ale podobna zasada będzie i dla reszty np. dla uib2
Po commit zmiany będą widoczne w bazie dla Ciebie jak i dla wszystkich innych użytkowników bazy...


Pozostało 580 znaków

2006-11-14 21:15
Dice
0

Problem właśnie w tym że używam tranzakcji i wszystko zatwierdzam poprzez commit. Dane są zapisywane w bazie sprawdzałem to przez manager'a dla InterBase. Wprowadzałem dane także poprzez manager'a zatwierdzałem je moja aplikacja to wykrywa wykonuje zapytanie 'SELECT * FROM ...' ponownie ale to nic nie daje.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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