llamar a un recordset de forma dinámica !?

16/07/2003 - 18:34 por David Navarro | Informe spam
buenas,
tengo un problema que me lleva atascado unos dias:
tengo una procedimiento al que le llega un parámetro que es un String y se
llama recordsetName. Éste es el nombre de un recordset y el problema es que
tengo que instanciar al recordset este pero no tengo ni idea como hacerlo.
Por cierto, en esta aplicación han usado DAO en vb6.0 contra SQLserver2000.

He probado con: set newRecordset = de1.Recordsets(recordsetName)
,pero no hay manera. Se les ocurre algo?
Gracias por adelantado.
 

Leer las respuestas

#1 David Navarro
16/07/2003 - 19:31 | Informe spam
si, de1 es un objeto dataenvironment. Creí que podría referenciarlo de esta
manera ya que, por ejemplo, la siguiente expresión es válida:

myNewRecordset.Open de1.Commands(CommandName)

siendo CommandName un String. Por eso estoy tan confundido !!


"Softjaen" @yahoo.es> escribió en el mensaje
news:

"David Navarro" escribió:

> tengo una procedimiento al que le llega un parámetro que
> es un String y se llama recordsetName. Éste es el nombre
> de un recordset y el problema es que tengo que instanciar
> al recordset este pero no tengo ni idea como hacerlo.
> En esta aplicación han usado DAO en vb6.0 contra SQLserver2000.
>

Hola, David:

Si estas utilizando la biblioteca de DAO, no hay ningún problema en
referenciar el nuevo «Recordset» con el nombre pasado en el argumento del
procedimiento, ya que puedes utilizar la colección «Recordsets» de un


objeto
«Database» (oDB) previamente abierto:

Public Sub Prueba(recordsetName As String)

Dim newRecordset As DAO.Recordset

Set newRecordset = oDB.Recordsets(recordsetName)

MsgBox newRecordset.RecordCount

End Sub

Otra cosa que también puedes hacer, en lugar de pasar una variable


«String»
al procedimiento, pasa una variable objeto «DAO.Recordset», de ésta forma
podrás referenciar el objeto «Recordset»:

Public Sub Prueba(recordsetName As DAO.Recordset)

Dim newRecordset As DAO.Recordset

Set newRecordset = recordsetName

MsgBox newRecordset.RecordCount

End Sub

Si utilizas éste último ejemplo, ten cuidado con los cambios realizados en
el «Recordset», porque al ser pasado por referencia al procedimiento, el
«Recordset» principal se verá afectado por los cambios efectuados.

Lo que a mí me extraña es la siguiente expresión:

> set newRecordset = de1.Recordsets(recordsetName)

Por casualidad, ¿«de1» no será un objeto «DataEnvironment»?

Un saludo.

Enrique Martínez
[MS MVP - VB]


Preguntas similares