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