zobrazeni a aktualizace tabulky PostgreSQL
Karel Zak
zakkr na zf.jcu.cz
Pondělí Červen 10 12:06:01 CEST 2002
On Mon, Jun 10, 2002 at 11:54:21AM +0200, Martin Sittek wrote:
>
> Příjemnou zaležitostí toho PC FADu bylo také to že každá
> věta (v termiologii SQL řádek) měla své jedoznačné 'fyzické
> číslo věty' a 'logické číslo věty'. Fyzické čislo věty odpovídalo
> pozici věty zapsainé na disku a logické čílo odpovídalo pozici
> podle zvoleého indexu. Je mi jasné, že fyzické člíslo věty by
> se dalo "napodobit" položkou typu automatické číslo ovšem já
> bych spíše potřeboval to logické číslo věty - existuje
> v PostgreSQL něco takového?
>
> Kdyby existovalo a já bych tudiž věděl že první řádek v okně
> setříděiného podle nějakého klíče ma logické číslo věty x,
> uživatel by stisknul PageUp pak bych vytvořil "select * from
> neco order by klic where logicke_cislo_vety >= x - velikost_okne
> and logicke_cislo_vety <= x;".
>
> Ovšem mám pocit že nic takového u PostgreSQL a jemu podobných
> systémů není. Tuduž otázka zní jak se něco takového dělá v
> těchto DB systémech?
>
> Vím o LIMIT a OFFSET, ovšem není mi jasné jak tyto hodoty
> "ukočírovat" když okno aktuálně zobrazuje někde prostředek tabulky
> a já nemán žádný pevný bod od kterého bych se odpíchl (teď mě napadá,
> že tenhle problém už také někdo řešil ovšem ten chtěl myslím hýbat
> úplně něčím jiným :-).
Jak to, ze nemate pevny bod? Co jsou ty LIMIT a OFFSET posledne
polozeneho dotazu? Neco takoveho mam u jedne web aplikace a moc v tom
nenachazim nejaky problem.
Proste az v tom listu v GTK dojede user na posledni dostupnou radku
tak provedete update toho listu z dotazu s LIMIT a OFFSET kde offset
bude vetsi prave o hodnotu limitu naposledy polozeneho dotazu. Pro
vas programek by asi nemel byt problem si nekde tuto hodnotu
uchovavat.
A nebo poradne reseni tohoto zadani zni pouzivat cursor, tedy
pro dany list si deklarovat select
DECLARE cursorname SELECT id, data FROM neco;
A pak postupne zadat o data:
FETCH FORWARD 10 FROM cursorname;
Vrati deset radek z toho selectu, muzete pouzivat i BACKWARD. Vice
viz docs.
Karel
--
Karel Zak <zakkr na zf.jcu.cz>
http://home.zf.jcu.cz/~zakkr/
C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
Další informace o konferenci Databases