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

update en base de datos

Estas en el tema de update en base de datos en el foro de ASP Clásico en Foros del Web. Tengo un formulario que me recoge los datos de una base de datos: <% dim objrs_Prod Set objrs_Prod = Server.CreateObject("ADODB.Recordset") dim strSql_prod strSql_prod ="SELECT tblproducto.idproducto, ...
  #1 (permalink)  
Antiguo 22/03/2002, 05:17
 
Fecha de Ingreso: marzo-2002
Mensajes: 4
Antigüedad: 23 años, 1 mes
Puntos: 0
update en base de datos

Tengo un formulario que me recoge los datos de una base de datos:
<%
dim objrs_Prod
Set objrs_Prod = Server.CreateObject("ADODB.Recordset")
dim strSql_prod
strSql_prod ="SELECT tblproducto.idproducto, tblproducto.descripcion, tblproducto.imagen,"_
& "tblproducto.activa, tblproducto.ididioma from tblproducto where idproducto=" & Request.QueryString("idproducto")
Objrs_Prod.Open strSql_prod,ObjConn, , adLockPessimistic,adCmdText

%>
</HEAD>
<BODY>
<form method=post action="actualiza_prod.asp" >
<table width="19%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>id</td>
<td>
<input type="hidden" name="idproducto" value="<%=objrs_prod("idproducto&quot ;)%>"></td>
</tr>
<tr>
<td>descripcion</td>
<td>
<input type="text" name="descripcion" value="<%=objrs_prod("descripcion&quo t;)%>">
</td>
</tr>
<tr>
<td>imagen</td>
<td>
<input type="text" name="imagen" value="<%=objrs_prod("imagen")%& gt;">
</td>
</tr>
<tr>
<td>activo</td>
<td>
<input type="checkbox" name="activa" value="true" checked>
</td>
</tr>
<tr>
<td>idioma</td>
<td>
<input type="numeric" name="ididioma" value="<%=objrs_prod("ididioma") %>">
</td>
</tr>
</table>
<input type="reset" name=borrar> <input type="submit" name=enviar>
</form>
Y otra página que actualiza los cambios
<%
dim objrs_Prod, bolEncontrado
Set objrs_Prod = Server.CreateObject("ADODB.Recordset")
Objrs_Prod.Open "tblproducto", ObjConn, , adLockPessimistic, adCmdTable

objrs_Prod("descripcion") = Request.Form("descripcion")
objrs_Prod("imagen") = Request.Form("imagen")
objrs_Prod("activa") = Request.Form("activa")
objrs_Prod("ididioma") = Request.Form("ididioma")
objrs_Prod.update
objrs_Prod.close
Set Objrs_Prod = nothing
ObjConn.close
Set Objconn = nothing 4DK710nkc
%>
pero me da fallos con el campo "activa"
  #2 (permalink)  
Antiguo 22/03/2002, 06:27
 
Fecha de Ingreso: diciembre-2001
Mensajes: 150
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: update en base de datos

Hola defarv2:

Si el campo activa es un checkbox, lo que deberías guardar es un yes|no o un 1|0.

Que es lo que te muestra el Request.Form("activa") ??

Korrikalari
  #3 (permalink)  
Antiguo 22/03/2002, 06:44
 
Fecha de Ingreso: marzo-2002
Mensajes: 4
Antigüedad: 23 años, 1 mes
Puntos: 0
Re: update en base de datos

Es ahi donde creo que me da el problema.
En la pagina que recoje los datos de la base de datos, no coje el campo "activa" y despues no es capaz de enviarlo a la pagina que actualiza los datos, (en cambio si me lo actualiza si marco el checked.
La idea es la siguiente son cinco campos en la BD, tengo un listado con los productos:
"listado.asp"
Ese pagina me edita el formulario con los campos del producto
"edita.asp"
Hago los cambios y se actualizan en
"actualiza.asp"

Problema:
"Edita.asp" no me recoje la información del campo "activa"
"actualiza.asp" no actualiza el registro si no marco como activo el campo "activa"
Por favor ayuda
  #4 (permalink)  
Antiguo 22/03/2002, 07:43
 
Fecha de Ingreso: diciembre-2001
Mensajes: 150
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: update en base de datos

Hola de nuevo:

Si el Request.Form("activa") no te devuelve nada es que no está seleccionado. En caso de que lo selecciones, Request.Form("activa") te devolverá el value que tenga ese checkbox.

Así que antes de asignar el valor:

objrs_Prod("activa") = Request.Form("activa")

deberás comprobar lo que hay en Request.Form("activa") y entonces hacer la update:

objrs_Prod("activa") = true // o (yes, 1...)
ó
objrs_Prod("activa") = false // o (no, 0...)

Korrikalari
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:58.