Seite 1 von 1

PostgreSQL "Position" ( OrdKeyNo() ) mit ORDER [erledigt]

Verfasst: Mi, 18. Jul 2012 5:29
von AUGE_OHR
hi,

wenn ich auf ORDER "__record" bin ist die "relative" Position ( DbPosition ) ja klar.

wenn ich einen INDEX verwende kann ich unter Xbase++ OrdKeyNo() verwenden um z.B. einen Scrollbar damit anzusteuern.

Frage : gibt es unter PostgreSQL so was wie OrdKeyNo() ?

Re: PostgreSQL "Position" ( OrdKeyNo() ) mit ORDER

Verfasst: Mi, 18. Jul 2012 5:47
von georg
Guten Morgen, Jimmy -


hast Du Dir mal angesehen, was ich Dir geschickt habe? Da steht das alles drin ...


Georg

Re: PostgreSQL "Position" ( OrdKeyNo() ) mit ORDER

Verfasst: Mi, 18. Jul 2012 6:06
von AUGE_OHR
georg hat geschrieben:hast Du Dir mal angesehen, was ich Dir geschickt habe? Da steht das alles drin ...
ah ... du hast schon "vorgearbeitet" ? nein ich bin noch nicht dazu gekommen.

ich habe nun auf XbpMultiCellGroup() umgestellt und es für Listview vorbereitet.
beim testen mit ORDER kam ich auf das "Problem" wenn ich einen Scrollbar verwenden will.

für das "blättern" mit "SELECT ... LIMIT xxx OFFSET yyy" stellt das kein Problem dar.
bei BOF() wäre OFFSET 0 und bei EOF() zeigt er einfach nicht mehr an als da sind.

ich habe ja nun die "gesamt" Anzahl ( Lastrec() ) die ich in einem Thread ermittelt habe.
da hab ich mal ein Array per AADD(i++,::Read("__record") )*** mitlaufen lassen bei > 500000
... < 8 Sec wobei 4 Sec. für das "SELECT ..." vergehen, aber 200 KB RAM ?!

Re: PostgreSQL "Position" ( OrdKeyNo() ) mit ORDER

Verfasst: Mi, 18. Jul 2012 6:54
von AUGE_OHR
georg hat geschrieben:Da steht das alles drin ...
YUP, jetzt hab ich es gelesen !
ich "denke" ich habe den selben Ansatz schon gehabt mit "3 Seiten" aber durch die Umstellung auf XbpMultiCellGroup() / ListView benötige ich keinen "Cache" mehr ;)

es liegt am "normalen" Browse was einen dazu "verführt" mehr Daten bereitzustellen als zu Anzeige benötigt werden.
allerdings ist es nicht so einfach Daten "nachzuladen" wenn der "DbSkipper" meint er wäre bei EOF()

das "nachladen" passiert aber erst durch eine User Aktion : Cursor / Maus

Cursor -> oBrowse:Keyboard wäre eine Möglichkeit und wenn man die "Navigation" hat wer braucht dann noch ein "Browse" zur "Anzeige" ?

Maus -> Scrollbar -> DbPosition dafür brauche ich auch "LastRec()" -> "SELECT ..." -> 2nd Thread -> AADD(i++,::Read("__record") )

der Scrollbar liefert mir ja nur eine "ungefähre" Anzeige die ich in meinem Array finde um die Anzeige neu zu positionieren wenn der Scrollbar "fertig" ist.