econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 2008
-
26 sept. 2005 à 09:34
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
26 sept. 2005 à 11:40
J'ai créé une fonction qui me renvoie un recordset (Type ADODB.Recordset).
D'habitude, quand je manipule des objets de ce type, je les crée (New)
et quand j'ai fini, je les supprime proprement ( Set ... = Nothing )
Ici, comme ma fonction crée et renvoie un recordset, je ne peux pas le
supprimer à l'intérieur de la fonction (sinon, je ne renvoie plus
rien). Ma question est donc : Que devient l'instance rReturn créée
temporairement dans ma fonction quand j'ai fini d'appeler cette
fonction ? Si j'appelle cette fonction 3 millions de fois, puis-je
planter ?
Public Function getRecordsetFromTable(sTableName As String, sKeyValue As String) As Recordset
Dim rReturn As Recordset
Set rReturn = New ADODB.Recordset
Set rReturn = CONNECTION.Execute("SELECT * FROM " & sTableName & " WHERE 1;")
rReturn.MoveFirst
[... bla bla ...]
getRecordsetFromTable = rReturn
End Function
J'ai une solution de secours, mais je pose quand même cette question qui me taraude l'esprit...
Manu -------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 26 sept. 2005 à 11:40
salut,
ta fonction renvoie un résultat. çà s'arrête là. je vois pas le problème.
par contre, ton SET, là oui, c'est pas top
le mieux serait de le déclarer (simple private ... New) dans la classe, et de le détruire au Terminate.
les autres demandes faites vont réutiliser ce même Set (pas New)