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

recordset!!

Estas en el tema de recordset!! en el foro de ASP Clásico en Foros del Web. TENGO EL SGTE PROBLEMA: CUANDO MI TABLA NO TIENE DATOS EL CODIGO SIGUIENTE NO ME FUNCIONA SE SUPONE QUE NUMERO DEBERIA TOMAR EL VALOR 1, ...
  #1 (permalink)  
Antiguo 08/08/2002, 12:05
 
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 172
Antigüedad: 22 años, 10 meses
Puntos: 0
recordset!!

TENGO EL SGTE PROBLEMA: CUANDO MI TABLA NO TIENE DATOS EL CODIGO SIGUIENTE NO
ME FUNCIONA SE SUPONE QUE NUMERO DEBERIA TOMAR EL VALOR 1, Y MOSTRARLO EN EL TEXT
NUMERO_ASESORIA, PERO NO LO HACE. SI TENGO DATOS FUNCIONA, ESTE ES EL CODIGO

<%set conexion = conecta()
set rs_maximo=Server.CreateObject("ADODB.Recordse t")
sql= "select max(numero_asesoria) as maximo from asesora"
rs_maximo.open sql, conexion


if not rs_maximo.eof then
numero=rs_maximo("maximo")
numero= numero + 1
else
numero=1
end if


%>

<input type="text" name="numero_asesoria" size="15" maxlength="5" value="<%response.write numero%>">


ESTE ES EL CODIGO QUE TIENE PROBLEMAS
If not rs_maximo.eof then
numero=rs_maximo("maximo")
numero= numero + 1
else
numero=1(ESTO NO LO HACE)
end if
QUE ME ENTREGA EL RECORSET CUANDO UNA TABLA ESTA VACIA, PROBE CON -1, NULL.... Y NO ME FUNCIONO??
  #2 (permalink)  
Antiguo 08/08/2002, 12:11
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: recordset!!

Hola:

Entrega Null.
Que BD estas usando?

saludos!!
  #3 (permalink)  
Antiguo 08/08/2002, 12:17
 
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 172
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: recordset!!

estoy usando SQL server 7.0

ya probe con null y tampoco funciona
el problema es que cuando valido en el rs_maximo.eof no entra al else y no me asigna el valor 1 a la variable numero

:( ¿que pasa???? :(
  #4 (permalink)  
Antiguo 08/08/2002, 12:28
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: recordset!!

Hola:

Si usas sql, manejalo directo en bd.

select (isnull(max(id),0)+1) from table

y el rs siempre te entregara el maximo +1;
en caso no exista datos entregara 1.

saludos!!
  #5 (permalink)  
Antiguo 08/08/2002, 13:11
 
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 172
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: recordset!!

necesito algo con el recorset, alguien sabe como puedo arreglarlo usando el recorset, el codigo que mande anteriormente por favor??????
no me resulta???
  #6 (permalink)  
Antiguo 08/08/2002, 13:21
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: recordset!!

Hola:

Tengo curiosidad por que no asi?

<%set conexion = conecta()
set rs_maximo=Server.CreateObject("ADODB.Recordse t")
sql= "select (isnull(max(numero_asesoria),0)+1) as maximo from asesoria"
rs_maximo.open sql, conexion
numero = rs_maximo("maximo")
%>

<input type="text" name="numero_asesoria" size="15" maxlength="5" value="<%response.write numero%>">
  #7 (permalink)  
Antiguo 08/08/2002, 13:36
 
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 172
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: recordset!!

como funciona esa linea(me puedes explicar)

sql= "select (isnull(max(numero_asesoria),0)+1) as maximo from asesoria"

como funciona en el caso de que no sea nulo. captura el valor del maximo o no :( ??????

(lo que pasa que no estoy en el pc donde trabajo y no tengo el programa para probarlo ahora, por eso necesito saber bien si me va a funcionar o no)
  #8 (permalink)  
Antiguo 08/08/2002, 13:46
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: recordset!!

Hola:

Aqui se hace uso de la sintaxis de Transact SQL. Existe una función ISNULL(CAMPO, VALOR)
que devuelve "VALOR" en caso el valor de "CAMPO" sea null, de lo contrario devuelve el valor encontrado.

por ejemplo para los siguientes registros
select ISNULL(CAMPO,0) from tabla, pasa lo siguiente:

CAMPO ->> Devuelve
1 ->> 1
null ->> 0
3 ->> 3

para un tabla vacia el campo seria NULL y entonces tambien devolveria 0.

Si ademas le agrego la funcion MAX y le sumo 1, ENTONCES:
me devuelve el maximo valor incrementado en 1 ó 1 (0 + 1)si es que no existan valores.

saludos!!

  #9 (permalink)  
Antiguo 08/08/2002, 13:50
 
Fecha de Ingreso: enero-2002
Mensajes: 189
Antigüedad: 23 años, 3 meses
Puntos: 0
Re: recordset!!

Hola:

Correcion:

Si uso max y la tabla esta vacia entonces devuelve null, es por eso que uso la funcion.

saludos!!
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 11:27.