Loading...

Disconnected recordset ASP

Ez.Biz Cloudware
Blog de ASP Clásico

Disconnected recordset ASP

Código ASP clásico

Por ASP clásico / 14/12/2015 @ 11:37:28 / 1387 visitas

Una de las directrices ASP es liberar los objetos ADO tan pronto como sea posible para liberar los recursos de sistema utilizados por estos objetos. La característica conjunto de registros desconectado de ADO permite conjuntos de registros existe sin tener una conexión activa; Esto puede ahorrar recursos del servidor de base de datos y mejorar la escalabilidad.

Los registros desconectados se pueden utilizar para mantener el tiempo, en el que una conexión de base de datos está abierto, hasta un mínimo.

Si por ejemplo, usted tiene que recorrer grandes cantidades de registros de datos, tal vez en gran medida de manipulación antes de su uso, la conexión a la base de datos puede ser abierta por mucho tiempo. Tal vez lo suficientemente largo para ser un problema si hay muchos accesos concurrentes en la página.

Una solución a esto es a registros desconectados, que mantienen la conexión de base de datos abierta sólo el tiempo suficiente para que el conjunto de registros que es construir, de lo cual se cierra la conexión. A continuación, puede tomar su tiempo de bucle a través del conjunto de registros, sin necesidad de utilizar los recursos de base de datos.


Function GetRS(strSQL) ' Returns a disconnected recordset
  Const adOpenStatic = 3    
  Const adUseClient = 3
  Const adLockBatchOptimistic = 4
  Dim objCon
  Dim objRS
  Set objCon = Server.CreateObject("ADODB.Connection")
  objCon.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.mdb;")
  Set objRS = Server.CreateObject("ADODB.Recordset")
  objRS.CursorLocation = adUseClient
  objRS.Open strSQL, objCon, adOpenStatic, adLockBatchOptimistic
  Set objRS.ActiveConnection = Nothing
  Set GetRS = objRS
  objCon.Close
  Set objCon = Nothing
End Function

Function GetPersonList() ' Returns formatted data from the discon. recordset
  Dim objRS
  Dim strOutput
  Set objRS = GetRS("SELECT fullName, birthDate FROM persons")
  If Not objRS.State = 0 Then
    If Not objRS.EOF Then
      Do While Not objRS.EOF
        strOutput = strOutput & objRS.Fields("birthDate").value & _
          " " & objRS.Fields("fullName").value & "<br />" & vbcrlf
        objRS.MoveNext()
      Loop
    objRS.Close
    Set objRS = Nothing
    Else
      strOutput = "No items found"
    End If
  Else
    strOutput = "No output"
  End If
  GetPersonList = strOutput
End Function

Response.Write(GetPersonList()

Descubre más sobre cómo simplificar y optimizar tu trabajo empresarial en el Blog de CoreASP.

Descargo de Responsabilidad:

El contenido y los recursos que ofrecemos en CoreASP están destinados únicamente a proporcionar herramientas y ejemplos prácticos para el desarrollo en ASP Clásico. Esta información es de carácter general y no debe considerarse asesoramiento profesional o técnico específico para tu proyecto. Aunque hacemos todo lo posible por asegurar la calidad y precisión de los recursos compartidos, no garantizamos que sean completamente libres de errores o que se ajusten perfectamente a todas las situaciones. CoreASP no se responsabiliza por cualquier pérdida, daño o inconveniente derivado del uso directo o indirecto de los recursos o información proporcionada. Además, CoreASP no respalda ni asume responsabilidad por enlaces o contenido de terceros que puedan estar referenciados en nuestra plataforma. Todos los derechos de propiedad intelectual sobre el contenido y recursos publicados en CoreASP pertenecen a CoreASP o a sus respectivos propietarios, y su uso está sujeto a las condiciones de la licencia especificada para cada recurso. Nos reservamos el derecho de modificar este descargo de responsabilidad en cualquier momento sin previo aviso. Para más detalles, consulta el documento completo de términos y condiciones.