WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 13.02.2004, 23:14   #1
randomize
Senior Member
 
Registriert seit: 26.04.2002
Beiträge: 168


Standard 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
randomize ist offline   Mit Zitat antworten
Alt 13.02.2004, 23:34   #2
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

sollte eigentlich genau so funktionieren - wie du geschrieben hast.

Also ich verstehs nicht, warums net geht.
renew ist offline   Mit Zitat antworten
Alt 14.02.2004, 08:01   #3
Nightman
Inventar
 
Registriert seit: 04.09.2001
Alter: 42
Beiträge: 1.959

Mein Computer

Standard

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
____________________________________
MfG Nightman
Nightman ist offline   Mit Zitat antworten
Alt 14.02.2004, 14:42   #4
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

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.
renew ist offline   Mit Zitat antworten
Alt 14.02.2004, 16:04   #5
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

@randomize:

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

mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 14.02.2004, 22:00   #6
randomize
Senior Member
 
Registriert seit: 26.04.2002
Beiträge: 168


Standard

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.
randomize ist offline   Mit Zitat antworten
Alt 15.02.2004, 09:25   #7
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

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
wbendl ist offline   Mit Zitat antworten
Alt 15.02.2004, 09:54   #8
3of4
Elite
 
Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429


Standard

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...
____________________________________
Resistantium est futilius
3of4 ist offline   Mit Zitat antworten
Alt 15.02.2004, 11:36   #9
randomize
Senior Member
 
Registriert seit: 26.04.2002
Beiträge: 168


Standard

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
randomize ist offline   Mit Zitat antworten
Alt 15.02.2004, 17:00   #10
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

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
wbendl ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:31 Uhr.


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