hi,.

also erstmal. ich rate dir davon ab ;) aber tu was du nicht lassen kannst.
disconnected ist das recordset ja schon. fehlt nur noch die kopie.

und die bekommst du mit der clone-funktion


Public Function GetRS(sqlstring)
    pRS.Open sqlstring, pnameConn
    pRS.ActiveConnection = Nothing
    GetRS = pRS.Clone
'              ^^^^^^
    Set pRS = Nothing
End Function



AAAABER ;)
das kann dauern.

Public Function GetRS(ByVal sqlstring As String) As ADODB.Recordset
'                     ^^^^^^          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

solltest du vielleicht auch noch hinschreiben, oder (fast noch besser) dein
eigenes Objekt erstellen, welches die f�r dich relevanten daten des
recordsets vorh�llt. sonsts ists ja kein rs-ersatz, nur ein
rs-hinundherschieb*g*.


ach ja,.. ich bin mir auch hier nicht sicher, aber ich glaube, du musst

pRS.ActiveConnection = Nothing

zu

Set pRS.ActiveConnection = Nothing


umschreiben, damits keine konflikte gibt. activeconnection kann auch die
verbindungszeichenfolge sein(wie gesagt. nur wenn mich nicht alles t�uscht)
vor allem ist Nothing aber vom typ object, und solche werden in vb6 immer
mit set zugewiesen.


ciao .. wolfgang
http://www.vbwelt.de/


> tach,
>
> wie ihr alle gemerkt habt versuche ich mich momentan ein bisschen an
> VisualBasic ;-)
>
> ich m�chte eine klasse entwickeln, die mir ein recordset aus einer
> datenbank zur�ckgibt. wichtig hierbei: das recordset soll auf
> der seite
> der klasse sofort von der datenbank getrennt werden und geschlossen
> werden...
>
> mein ansatz:
>
> > Public pnameConn As ADODB.Connection
> > Private pRS As ADODB.Recordset
> >
> > Private Sub Class_Initialize()
> >     Set pnameConn = New ADODB.Connection
> >     pnameConn.Open "DSN=db"
> >     Set pRS = New ADODB.Recordset
> >     pRS.CursorLocation = 3
> > End Sub
> >
> > Private Sub Class_Terminate()
> >     pnameConn.Close
> >     Set pRS = Nothing
> >     Set pnameConn = Nothing
> > End Sub
> >
> > Public Function GetRS(sqlstring)
> >     pRS.Open sqlstring, pnameConn
> >     pRS.ActiveConnection = Nothing
> >     GetRS = pRS
> >     Set pRS = Nothing
> > End Function
>
> wie schaffe ich es nun, da� ein
>
> RS = db.GetRS(query)
>
> nicht eine referenz des urspr�nglichen recordsets, sondern eine
> unabh�ngige kopie enth�lt, damit ich das rs auf der klassenseite
> schlie�en kann?
>
> sinn dahinter soll sein, die db bei den aufrufen m�glichst wenig zu
> belasten und die connection gleich wieder frei geben zu k�nnen...



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

Antwort per Email an