🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#208
Author: Psujak
Date: Mon, 12 Apr 1999 07:41
15 lines
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
#209
Author: Traptak
Date: Mon, 12 Apr 1999 18:30
13 lines
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
#210
Author: Roman Kowaliszyn
Date: Mon, 12 Apr 1999 23:59
52 lines
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