Foros del Web » Programando para Internet » ASP Clásico »

Error con el movelast()

Estas en el tema de Error con el movelast() en el foro de ASP Clásico en Foros del Web. Yo estoy conectando una base de datos con el suiente codigo: dim saldo_anterior dim conn,rsu,sqlu,sql2 set conn = server.createobject("adodb.connection") conn.open "DSN=baseinca" sqlu="SELECT saldo_caja FROM caja_perufly ...
  #1 (permalink)  
Antiguo 31/03/2005, 17:04
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 21 años, 6 meses
Puntos: 2
Error con el movelast()

Yo estoy conectando una base de datos con el suiente codigo:

dim saldo_anterior
dim conn,rsu,sqlu,sql2
set conn = server.createobject("adodb.connection")
conn.open "DSN=baseinca"
sqlu="SELECT saldo_caja FROM caja_perufly ;"
'se ejecuta el primer sql
set rsu=conn.execute(sqlu)
rsu.movelast()
saldo_anterior=saldo_caja
response.Write(saldo_anterior)


Y me sale el siguiente error

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'movelast'

/ingre_gasto.asp, line 24


Alguien puede ayudarme please... la verdad no se uqe mas hacer con este lio.
  #2 (permalink)  
Antiguo 31/03/2005, 17:19
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
En vez de instanciar el recordset de esa manera, trtá de hacerlo explícitamente:


dim saldo_anterior
dim conn,rsu,sqlu,sql2
set conn = server.createobject("adodb.connection")
set rs = server.createobject("adodb.recordset")
conn.open "DSN=baseinca"
sqlu="SELECT saldo_caja FROM caja_perufly ;"
'se ejecuta el primer sql
rsu.open sqlu,conn,3,3
rsu.movelast()
saldo_anterior=saldo_caja
response.Write(saldo_anterior)
__________________
...___...
  #3 (permalink)  
Antiguo 31/03/2005, 17:24
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Asi es, cuando tu abres un recordset mediante el metodo execute un objeto conexio, el cursor por default(me parece) que no permite este tipo de desplazamiento.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 31/03/2005, 17:29
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
Si tienes el adovbs.inc utiliza el tipo de cursor: adOpenDynamico en todo caso, un 2 como tercer parametro, para que puedas moverte.
  #5 (permalink)  
Antiguo 31/03/2005, 17:33
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 21 años, 6 meses
Puntos: 2
MMMM voya probar

pero mi pregunta es, no hay alguna otra forma en la que pueda ir al final de la tabla usando sql y el asp ??
  #6 (permalink)  
Antiguo 31/03/2005, 17:39
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Formas hay algunas, pero para que quieres otra? lo que necesitas es configurar correctamente el cursor de tu recordset.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 31/03/2005, 17:39
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 21 años
Puntos: 4
lo que yo haria, y si mi diseño me lo permite, utiliza top 1 order by campo_numerico desc.

no se si me entiendas, ordeno de forma descendente y nada traigo 1 solo registro, siempre y cuando tengas algún campo en tu base que puedas ordenarlo de acuerdo al orden de entrada.
  #8 (permalink)  
Antiguo 31/03/2005, 17:52
 
Fecha de Ingreso: octubre-2003
Ubicación: Lima
Mensajes: 319
Antigüedad: 21 años, 6 meses
Puntos: 2
Gracias por la ayuda, voy a probar cual de ellas es la mejor solucion...
  #9 (permalink)  
Antiguo 01/04/2005, 04:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 20 años, 2 meses
Puntos: 6
Cita:
Iniciado por Al Zuwaga
En vez de instanciar el recordset de esa manera, trtá de hacerlo explícitamente:


dim saldo_anterior
dim conn,rsu,sqlu,sql2
set conn = server.createobject("adodb.connection")
set rs = server.createobject("adodb.recordset")
conn.open "DSN=baseinca"
sqlu="SELECT saldo_caja FROM caja_perufly ;"
'se ejecuta el primer sql
rsu.open sqlu,conn,3,3
rsu.movelast()
saldo_anterior=saldo_caja
response.Write(saldo_anterior)
Interesante, aunque ya había visto esa forma de hacerlo en otros lados, no sabía yo que eso se llamaba instanciar el recordset explícitamente y que traía aparejadas esas ventajas (yo lo hacía de la forma "implícita", si se llama así a como lo hizo el que ha abierto el tópic).

Yo tenía un problema similar al que abre el tópic, que era que no me iba el RecordCount, y lo solucioné así:


Código:
Set oRS=oConn.Execute(SQL)

oRS.Close	 
oRS.CursorType=1	
oRS.Open	 

numero_registros=oRS.RecordCount
  #10 (permalink)  
Antiguo 01/04/2005, 10:40
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Cita:
...no sabía yo que eso se llamaba instanciar el recordset explícitamente... "implícita", si se llama así a como lo hizo el que ha abierto el tópic...
Yo tampoco se si se llama así. Y si sí, no sé si lo he dicho correctamente o justamente al revés
En fin, tampoco es para ser tan puntillosos
__________________
...___...
  #11 (permalink)  
Antiguo 01/04/2005, 11:09
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
implicitamente, explicitamente, que mas da?

salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #12 (permalink)  
Antiguo 01/04/2005, 20:52
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 20 años, 2 meses
Puntos: 6
Jajaja eh, que yo no estaba siendo puntilloso, es que me había creído lo que había dicho Al Zuwaga y más bien estaba alabando sus conocimientos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:00.