ASP – Problema ordenando Recordset rs.Sort
Written by lopezatienza on 16/09/2014 – 12:42 -Buenas a tod@s.
Me he encontrado con la necesidad de realizar una ordenación de los registros una vez realizada la consulta, ya que si realizaba la ordenación en la consulta ésta se convertía en intratable llegando a dar un Timeout.
El problema es que al tratar de asignar a la propiedad Sort la columna para ordenar, no hacía nada.
He encontrado la solución utilizando una sobrecarga de la función Open del objeto Recordset:
rs.Open SQLString, Connection, Cursor, Locktype
Cursors:
0 - adForwardOnly (can only scroll through recordset one at a time, in a forward direction)
1 - adOpenKeyset (can scroll through forward or backwards)
2 - adOpenDynamic (real-time changes, highest resource requirements)
3 - adOpenStatic (most often used if scrolling needed)
Lock Types:
1 - adLockReadOnly (can only read data, no updates)
2 - adLockPessimistic (others can't change while locked)
3 - adLockOptimistic (others can access data while in use)
4 - adLockBatchOptimistic (Allows multiple-user updates)
Es necesario pasarle como parámetros:
Cursor = adOpenDynamic
Locktype = adLockOptimistic
Código inicial
set objADO = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
txtSQL = "SELECT * FROM TABLA"
rs.Sort = "FECHA"
OBJADO.open "ConnectionString"
rs.Open txtSQL, objADO
Código después del cambio
set objADO = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
txtSQL = "SELECT * FROM TABLA"
rs.Sort = "FECHA"
OBJADO.open "ConnectionString"
rs.Open txtSQL, objADO, 3, 3
Un saludo y espero os sirva de ayuda.
Autor: Antonio Lopez Atienza
Posted in ASP | No Comments »