WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   ASP - RecordSet wiederverwenden? (http://www.wcm.at/forum/showthread.php?t=125278)

randomize 13.02.2004 23:14

ASP - RecordSet wiederverwenden?
 
Geht das?

In etwa...:

blablabla

RS.Open "SELECT wasauchimmer FROM irgendnetable", conn

blabla

RS.Close
RS.Open "SELECT nochmal FROM woanders", conn


blabla

RS.Close

Also zweimal das gleiche RecordSet, nacheinander verschiedene Tabellen aufrufen mit einem RS.Close dazwischen, da bekomme ich folgendes:

ADODB.Recordset- Error '800a0e79'
Der Vorgang ist für ein geöffnetes Objekt nicht zugelassen.

Weiß jemand was ich falsch mache?? Zumal ich das RS ja schließe, dachte ich...

Danke schonmal,
Etienne

renew 13.02.2004 23:34

sollte eigentlich genau so funktionieren - wie du geschrieben hast.

Also ich verstehs nicht, warums net geht. :confused:

Nightman 14.02.2004 08:01

also bei mir funzt es auch nur schreib ich es etwas anders

-------------
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM table WHERE ID = 1 LIMIT 1"
objRS.open strSQL, strCon

objRS.Close
Set objRS = Nothing

Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM table WHERE ID = 1 LIMIT 1"
objRS.open strSQL, strCon

objRS.Close
Set objRS = Nothing
--------------

versuch es einfach mehr als das es dann wieder ned geht kann dir eh ned passieren

viel glück

renew 14.02.2004 14:42

Naja, aber so verwendest du das Objekt ja nicht wieder neu - du "zerstörst" es ja wieder, und definierst es dann als neues Objekt.

Aber so wie es randomize geschrieben hat, habe ich es schon oft gemacht - darum wundert mich es, dass es nicht geht.

wbendl 14.02.2004 16:04

Hi!

@randomize:

Poste mal mehr von dem Code. Besonders die Deklaration und die Zuweisung von RS interessiert mich.

mfg

WB

randomize 14.02.2004 22:00

Da:

Dim conn...
blabla

Dim RS
Set RS = Server.CreateObject ("ADODB.Recordset")

RS.Open "SELECT blabla", conn

...
RS.Close
RS.Open "bla", conn
...

... und so weiter wie oben beschrieben.

wbendl 15.02.2004 09:25

Hi!

Meine Frage war anscheinend nicht genau genug formuliert.

Wichtig ist auch, wo die Deklaration steht und welchen Gültigkeitsbereich die Variable hat.

mfg

WB

3of4 15.02.2004 09:54

ich mach es immer ohne das rs vorher zu closen (bei mir spuckt er immer hier einen Versuch aus!).
Ich überlager rs einfach mit einem anderen...

randomize 15.02.2004 11:36

Zitat:

Original geschrieben von wbendl
Hi!

Meine Frage war anscheinend nicht genau genug formuliert.

Wichtig ist auch, wo die Deklaration steht und welchen Gültigkeitsbereich die Variable hat.

mfg

WB

Hi,

also die Deklaration steht irgendwo sehr am Anfang und ist auch ziemlich global.

MfG
Etienne

wbendl 15.02.2004 17:00

Hi!

Wenn die Deklaration einen guten Grund hat, ist die einfache Lösung
Set RS = Nothing zu verwenden, wie von Nightman vorgeschlagen.

Wenn das Recordset lokal deklariert wird, sollte es auch ohne klappen.

Wenn möglich (bzw. sinnvoll), solltest du Variablen immer auf Prozedur-Ebene deklarieren.

mfg

WB


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag