Thread View: pl.comp.lang.delphi.bazy-danych
3 messages
3 total messages
Started by Psujak
Mon, 12 Apr 1999 07:41
Interbase i odświeżanie widoku
Author: Psujak
Date: Mon, 12 Apr 1999 07:41
Date: Mon, 12 Apr 1999 07:41
15 lines
1494 bytes
1494 bytes
Witam ! Mam taki problem z otwieraniem widoków na serwerze Interbase. Otwieram go pytaniem select * from tablica itp. Po otwarciu widoku wykonuje jego aktualizacje poprzez wywolanie TStoredProc na serwerze. Jednak moj widok poprzednio otwarty nie aktualizje sie. Musze go zamknac i otworzyc. Nie bylo by z tym problemu, gdyby tabela miala do 300 rekordow. Natomiast przy otwieraniu np.20 000 widac spowolnienie pracy. Co ciekawsze wywolanie metody Refresh powoduje zwrocenie bledu typu : niemozliwe,brak unikalnego indeksu. Czy jest jakis szybki ,wydajny sposob zmuszenia serwera do odswierzena widoku ? psujak@friko7.onet.pl
Re: Interbase i odświeżanie widoku
Author: Traptak
Date: Mon, 12 Apr 1999 18:30
Date: Mon, 12 Apr 1999 18:30
13 lines
1338 bytes
1338 bytes
Psujak <psujak@friko7.onet.pl> napisał(a) w artykule <IkhQ2.5268$lN.87032@news.tpnet.pl>... > Otwieram go pytaniem select * from tablica itp. Po otwarciu widoku > wykonuje jego aktualizacje poprzez wywolanie TStoredProc na serwerze. Jednak > moj widok poprzednio otwarty nie aktualizje sie. > Czy jest jakis szybki ,wydajny sposob zmuszenia serwera do odswierzena > widoku ? Niestety nie. Ten który stosujesz jest jedyny. Możesz jedynie zamiast BDE użyć Free InterBase Component. Tam otwieranie zapytań trwa bardzo krótko. Traptak
Re: Interbase i odświeżanie widoku
Author: Roman Kowaliszyn
Date: Mon, 12 Apr 1999 23:59
Date: Mon, 12 Apr 1999 23:59
52 lines
2214 bytes
2214 bytes
Czesc,
Psujak wrote:
>
> Witam !
>
> Mam taki problem z otwieraniem widoków na serwerze Interbase.
> Otwieram go pytaniem select * from tablica itp. Po otwarciu widoku
> wykonuje jego aktualizacje poprzez wywolanie TStoredProc na serwerze. Jednak
> moj widok poprzednio otwarty nie aktualizje sie.
> Musze go zamknac i otworzyc.
> Nie bylo by z tym problemu, gdyby tabela miala do 300 rekordow.
> Natomiast przy otwieraniu np.20 000 widac spowolnienie pracy.
A nie mozna odwrotnie? Najpierw aktualizacja,
a potem odczyt przez TQuery?
> Co ciekawsze wywolanie metody Refresh powoduje zwrocenie bledu
> typu : niemozliwe,brak unikalnego indeksu.
Refresh nie dziala na TQuery. Musisz nadpisac sobie TQuery
zmieniajac:
protected
procedure InternalRefresh; override;
np. tak
procedure TMyQuery.InternalRefresh;
var
KeyValue: Integer;
begin
DisableControls;
try
KeyValue := FieldByName('ID').AsInteger;
Close; Open;
Locate('ID', KeyValue, []);
finally
EnableControls;
end;
end;
przy założeniu, ze wartosci pola ID sa unikalne (i ze w ogole takie
pole istnieje) i ze sa typu calkowitego.
Pozdrawiam
--
Roman Kowaliszyn
DAKAN, Bydgoszcz
romank@interlan.com.pl
delphi_pl-owner@onelist.com
http://www.onelist.com/archives.cgi/delphi_pl
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads