Supportnet / Forum / Skripte(PHP,ASP,Perl...)
RS.AbsolutePosition ergibt immer -1
Frage
Wenn ich die Cursor-Position in einem
Recordset mit
RS.AbsolutePosition
abrufen will, kommt immer -1 als Wert zurück, egal, wo der Cursor ´wirklich stehen müsste. Hat jemand so was schon mal gehabt? - Ich werde langsam wahnsinnig, wil ich mich kaum innerhalb des REcordsets bewegen kann.
Danke im Voraus!
Antwort 1 von Karl
Hallo Kolja,
die Fehler Beschreibung ist etwas dürftig, Dein Programmierkenntnisstand ist mir unklar, ich versuche es trotzdem.
1. Es gibt zwei Arten des Cursors (damit ist nicht dieses blinkende Ding auf dem Bildschirm gemeint!)
Einen Server-Cursor (voreinstellung)
Einen Client-Cursor
Es ist auch stark vom Provider (damit ist auch nicht der Netzanbieter gemeint!) abhängig, welche Methoden unterstützt werden.
Aus Deinem Post geht nicht hervor, was Du benutzt.
Deshalb hier allgemein für Dich und andere, die dasselbe Problem haben, das Erzeugen eines Clientcursors.
Client-Cursor angewendet auf das Connection Object
Set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionTimeout = Application("xxx_ConnectionTimeout")
conn.CommandTimeout = Application("xxx_CommandTimeout")
conn.CursorLocation = 3 REM adUseClient
conn.Open Application("xxx_ConnectionString"), Application("xxx_RuntimeUserName"), Application("xxx_RuntimePassword")
Client-Cursor angewendet auf das Recordset Object
Set recordset = Server.CreateObject("ADODB.Recordset")
recordset .CursorLocation = 3 REM adUseClient
Mit eine Boolschen Variablen kann man dann abfragen, ob der Client-Cursor funktioniert
Die Abfrage gibt True / False zurück
fBookmark=recordset.Supports(8192)
Wenn True, dann funktionieren Bookmark, AbsolutePage, AbsolutePosition usw.
Wie gesagt, es ist immer noch vom ODBC/OLEDB - Treiber abhängig, ob diese Methoden unterstützt werden.
Mfg Karl
die Fehler Beschreibung ist etwas dürftig, Dein Programmierkenntnisstand ist mir unklar, ich versuche es trotzdem.
1. Es gibt zwei Arten des Cursors (damit ist nicht dieses blinkende Ding auf dem Bildschirm gemeint!)
Einen Server-Cursor (voreinstellung)
Einen Client-Cursor
Es ist auch stark vom Provider (damit ist auch nicht der Netzanbieter gemeint!) abhängig, welche Methoden unterstützt werden.
Aus Deinem Post geht nicht hervor, was Du benutzt.
Deshalb hier allgemein für Dich und andere, die dasselbe Problem haben, das Erzeugen eines Clientcursors.
Client-Cursor angewendet auf das Connection Object
Set conn = Server.CreateObject("ADODB.Connection")
conn.ConnectionTimeout = Application("xxx_ConnectionTimeout")
conn.CommandTimeout = Application("xxx_CommandTimeout")
conn.CursorLocation = 3 REM adUseClient
conn.Open Application("xxx_ConnectionString"), Application("xxx_RuntimeUserName"), Application("xxx_RuntimePassword")
Client-Cursor angewendet auf das Recordset Object
Set recordset = Server.CreateObject("ADODB.Recordset")
recordset .CursorLocation = 3 REM adUseClient
Mit eine Boolschen Variablen kann man dann abfragen, ob der Client-Cursor funktioniert
Die Abfrage gibt True / False zurück
fBookmark=recordset.Supports(8192)
Wenn True, dann funktionieren Bookmark, AbsolutePage, AbsolutePosition usw.
Wie gesagt, es ist immer noch vom ODBC/OLEDB - Treiber abhängig, ob diese Methoden unterstützt werden.
Mfg Karl
Antwort 2 von Kolja
Vergesst meine ganze Fragerei!
Ich bin dümmer als mein Hund!!
Fehler gefunden.
Mfg Kolja
Ich bin dümmer als mein Hund!!
Fehler gefunden.
Mfg Kolja
Antwort 3 von Kolja
Hallo Karl!
DAs mit der Rekursion hab ich mir auch schon überlegt, klappt aber noch nicht so richtig.
Wie meinst Du das mit den zwei Schlüsselfeldern? Wenn ich Dich richtig verstehe, hast Du in der Tabelle noch ´nen Eintrag mehr, der den jeweiligen Eltern-Eintrag enthält. Der Vorteil wäre dann, daß ich mir aufwendige If-Abfragen sparen könnte. In einer Rekursionsstufe müßte ich dann nur diejenigen Knoten darstellen, die dem angeklickten Knoten entsprechen...
Vielleicht keine schlechte Idee, wenn ich das jetzt richtig interpretiert habe. Falls ich falsch liege, schreib doch bitte nochmal..
Tschüss,
Kolja
DAs mit der Rekursion hab ich mir auch schon überlegt, klappt aber noch nicht so richtig.
Wie meinst Du das mit den zwei Schlüsselfeldern? Wenn ich Dich richtig verstehe, hast Du in der Tabelle noch ´nen Eintrag mehr, der den jeweiligen Eltern-Eintrag enthält. Der Vorteil wäre dann, daß ich mir aufwendige If-Abfragen sparen könnte. In einer Rekursionsstufe müßte ich dann nur diejenigen Knoten darstellen, die dem angeklickten Knoten entsprechen...
Vielleicht keine schlechte Idee, wenn ich das jetzt richtig interpretiert habe. Falls ich falsch liege, schreib doch bitte nochmal..
Tschüss,
Kolja

