Visual Basic - Crear recordset virtual

Life is soft - evento anual de software empresarial
 
Vista:

Crear recordset virtual

Publicado por Sergio (48 intervenciones) el 30/08/2006 15:34:12
Hola. Una pregunta por favor. Se puede crear un recorset virtual, sin utilizar tablas de ningun tipo, solo con valores que yo quiero ?

Si se puede, se puede pasar como parametro este recordset a crystal reports para imprimirlo ?

Alguien podria ayudarme ?

Gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Crear recordset virtual

Publicado por elsaky (55 intervenciones) el 30/08/2006 16:22:12
ya te lo conteste en otro foro, pero igual te lo pongo aca
saludos

---------------------------------------------------------------------------------------------------------

Ejemplo del método CreateRecordset (VB)

Puede crear un objeto Recordset y especificar la información de las columnas. Después, puede insertar datos en el objeto Recordset; el conjunto de filas inserta los datos en un búfer.

El ejemplo de código siguiente muestra cómo definir un Recordset mediante el objeto RDSServer.DataFactory. También puede usarse el objeto RDS.DataControl.

Sub RsDefineShape()

Dim vntRecordShape(3)
Dim vntField1Shape(3)
Dim vntField2Shape(3)
Dim vntField3Shape(3)
Dim vntField4Shape(3)

' En cada campo, especifica el nombre,
' tipo, tamaño y si puede ser nulo.

vntField1Shape(0) = "Name" ' Nombre de columna.
vntField1Shape(1) = CInt(129) ' Tipo de columna
vntField1Shape(2) = CInt(40) ' Tamaño de columna.
vntField1Shape(3) = False ' ¿Con valores nulos?

vntField2Shape(0) = "Age"
vntField2Shape (1) = CInt(3)
vntField2Shape (2) = CInt(-1)
vntField2Shape (3) = True

vntField3Shape (0) = "DateOfBirth"
vntField3Shape (1) = CInt(7)
vntField3Shape (2) = CInt(-1)
vntField3Shape (3) = True

vntField4Shape (0) = "Balance"
vntField4Shape (1) = CInt(6)
vntField4Shape (2) = CInt(-1)
vntField4Shape (3) = True

' Pone todos los campos en una matriz de matrices.
vntRecordShape(0) = vntField1Shape
vntRecordShape(1) = vntField2Shape
vntRecordShape(2) = vntField3Shape
vntRecordShape(3) = vntField4Shape

' Utiliza RDSServer.DataFactory para crear un
' Recordset. Toma una matriz de Variants donde
' cada elemento es a su vez otra matriz de
' Variants, uno por cada columna requerida en el
' Recordset.
' Los elementos de la matriz interna son el
' nombre, tipo, tamaño y la posibilidad de ser nula de la columna.

Dim NewRs

' Podría utilizar el objeto RDS.DataControl
' en lugar del objeto RDSServer.DataFactory. En
' cuyo caso, el código siguiente sería Set NewRS
' = ADC1.CreateRecordset(vntRecordShape)
Set NewRS = ADF.CreateRecordset(vntRecordShape)

Dim fields(3)
fields(0) = vntField1Shape(0)
fields(1) = vntField2Shape (0)
fields(2) = vntField3Shape (0)
fields(3) = vntField4Shape (0)

' Llena el nuevo Recordset con valores de datos.
Dim fieldVals(3)

' Utiliza AddNew para agregar los registros.
fieldVals(0) = "Joe"
fieldVals(1) = 5
fieldVals(2) = CDate(#1/5/96#)
fieldVals(3) = 123.456
NewRS.AddNew fields, fieldVals

fieldVals(0) = "Mary"
fieldVals(1) = 6
fieldVals(2) = CDate(#6/5/96#)
fieldVals(3) = 31
NewRS.AddNew fields, fieldVals

fieldVals(0) = "Alex"
fieldVals(1) = 13
fieldVals(2) = CDate(#1/6/96#)
fieldVals(3) = 34.0001
NewRS.AddNew fields, fieldVals

fieldVals(0) = "Susan"
fieldVals(1) = 13
fieldVals(2) = CDate(#8/6/96#)
fieldVals(3) = 0.0
NewRS.AddNew fields, fieldVals

NewRS.MoveFirst

' Establece el Recordset recién creado y poblado a
' la propiedad SourceRecordset de
' RDS.DataControl para enlazar controles visuales.
Set ADC1.SourceRecordset = NewRS

End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar