Visual Basic - Mantener recordset sin conexión

Life is soft - evento anual de software empresarial
 
Vista:

Mantener recordset sin conexión

Publicado por Nicolás (164 intervenciones) el 21/08/2006 01:19:20
Saludos:
Tengo un datalist que muestra una lista de nombres de un recordset, pero si cierro la conexión asociada al recordset mi datalist se vecía.
Como puedo mantener los datos en el datalist aún con la conexión cerrada?
Desde ya, muchas 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

RE:Mantener recordset sin conexión

Publicado por Cecilia Colalongo (3116 intervenciones) el 21/08/2006 15:52:02
Para desconectar un recordset fijate con:

Public Function CreateDisconnectRecordset(ByVal objRecordset As Recordset, Optional AppendFields As Variant) As Recordset

Dim objDisconnect As Recordset, objColumn As Field, iLoop As Long

If objRecordset.State = adStateOpen Then
With objRecordset
Set objDisconnect = New Recordset

For Each objColumn In .Fields
objDisconnect.Fields.Append objColumn.Name, objColumn.Type, objColumn.DefinedSize, adFldIsNullable + adFldMayBeNull

objDisconnect.Fields.Item(objColumn.Name).NumericScale = objColumn.NumericScale
objDisconnect.Fields.Item(objColumn.Name).Precision = objColumn.Precision
Next

If Not IsMissing(AppendFields) Then
For iLoop = LBound(AppendFields) To UBound(AppendFields)
objDisconnect.Fields.Append AppendFields(iLoop, 0), AppendFields(iLoop, 1), AppendFields(iLoop, 2)
Next iLoop
End If

objDisconnect.Open

If Not .EOF Then

If .CursorType <> adOpenForwardOnly Then .MoveFirst

While Not .EOF
objDisconnect.AddNew

For Each objColumn In objRecordset.Fields
objDisconnect.Fields.Item(objColumn.Name).Value = .Fields.Item(objColumn.Name).Value
Next

.MoveNext
Wend
End If

If Not objDisconnect.BOF And Not objDisconnect.EOF Then objDisconnect.MoveFirst
End With
End If

Set CreateDisconnectRecordset = objDisconnect
End Function
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

RE:Mantener recordset sin conexión

Publicado por Nicolás (164 intervenciones) el 21/08/2006 18:12:48
Cecilia:
Muchas gracias por tu respuesta, funciona perfectamente.
Pero ahora me encuentro con un problema de performance. Estaba utilizando el control datalist porque es rápido para cargar 25000 clientes que tengo que mostrar. La utilización del método que me proponés demora lo mismo que utilizar un list común. Si tenés una sugerencia al respecto te lo agradecería.
Una véz mas te agradezco infinitamente por la detallada respuesta.
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

RE:Mantener recordset sin conexión

Publicado por Cecilia Colalongo (3116 intervenciones) el 22/08/2006 13:08:39
No bajes los 25.000 clientes sino los que necesites, dudo mucho que el usuario lea esa cantidad de información, seguramente habrá alguna condición de búsqueda antes.
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