Hallo!

> ich habe eine Rankingliste �ber eine SQL-Abfrage
> welche mir z.B. 200 Zeilen ausgibt, das sind dann
> praktisch die Platzierungen 1-200.
>
> Nun suche ich innerhalb des Recordsets �ber Find
> nach einem bestimmten Eintrag.

Ist schon umst�ndlich, oder? W�re es nicht besser wenn direkt 21
Datens�tze ankommen?

> Jetzt m�chte ich die Ausgabe der Daten, bei 10 Zeilen
> vor dem gefundenen starten und bei 10 Zeilen nach
> dem gefundenen Beenden.

> Set objRecordset = Server.CreateObject("ADODB.Recordset")
> jrs.Open strSQLQuery, objeconnection , 3, 3

Warum Schreibrechte? Reicht adLockReadOnly nicht aus?

> jrs.find "stammid = " & idnr ' Eintrag innerhalb des Rankings suchen
> posdat = jrs.absoluteposition ' Position des Eintags
> if posdat - 10 < 0 then
>       jrs.movefirst    ' falls unter den ersten zehn
> else
>       jrs.move (posdat - 10) ' Cursor auf 10 zur�ck setzen

Das bewegt den Cursor um 155 Zeilen nach vorne. ;-)

> End if

Da Du den Static-Cursor verwendest, kannst Du ja direkt mit

jrs.Move(-10)
Response.Write("<table><tr><td>" & _
               jrs.GetString(2, 21, _
               "</td><td>", _
               "</td></tr><tr><td>", _
               "&nbsp;") & "</td></tr></table>")

arbeiten, also erst 10 zur�ck und dann 21 Zeilen ausgeben.

> Problem:
> Tja, der Cursor l�sst sich �ber move nicht setzen,
> bekomme immer -3 zur�ck.

Du bekommst EOF, weil Du ja �ber das Ende hinausschiest.

>
> Hat jemand nen Tip?

Ich w�rde den eigenen Datensatz suchen und dann die 10 davor und danach
mit union einbinden. Dann kannst Du sogar direkt den ForwardOnly-Cursor
verwenden.

Freundliche Gr��e
Joachim van de Bruck



| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp

Antwort per Email an