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

SANDER, respuesta al tema de Variables Booleanas

Estas en el tema de SANDER, respuesta al tema de Variables Booleanas en el foro de ASP Clásico en Foros del Web. Pagina donde tengo un cuadro de lista con todas las instalaciones y el formulario para agregar nuevas instalaciones. <html> <head> <title>Instalaciones</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> ...
  #1 (permalink)  
Antiguo 23/07/2003, 00:48
 
Fecha de Ingreso: julio-2003
Mensajes: 6
Antigüedad: 20 años, 10 meses
Puntos: 0
SANDER, respuesta al tema de Variables Booleanas

Pagina donde tengo un cuadro de lista con todas las instalaciones y el formulario para agregar nuevas instalaciones.

<html>
<head>
<title>Instalaciones</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "sigma"
sSQL="select * from instalaciones order by instalacion"
'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
%>
<table width="100%" border="0">
<tr>
<td>
<div align="center">INSTALACIONES</div>
</td>
</tr>
<tr>
<td>
<div align="center">
<select name="instalaciones" size="15" multiple>
<%
Do While Not RS.EOF
%>
<option>
<%Response.Write RS("Instalacion")%>
</option>
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
Set RS = nothing
Set Conn = nothing
%>
</select>
</div>
</td>
</tr>
<tr>
<td height="65">
<form name="newcomp" method="post" action="insertarinstal.asp">
<div align="center">
<table width="100%" border="0">
<tr>
<td width="35%">
<div align="right">Nueva Instalación</div>
</td>
<td width="20%">
<input type="text" size=30 name="instalacion">
</td>
<td width="23%">
<div align="center">
<input type="checkbox" name="enuso" value="checkbox">
En Uso</div>
</td>
<td width="22%">
<input type="submit" name="newcomp" value="A&ntilde;adir">
</td>
</tr>
</table>
</div>
</form>
</td>
</tr>
</table>
</body>
</html>

Pagina donde se verifican los datos y se tiene que agregar las instalaciones:

<html>
<head>
<title>Resultado</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
'Recogemos los valores del formulario
instalacion=Request.Form("instalacion")
enuso=Request.Form("enuso")
if enuso=-1 then
enuso=false
else
enuso=true
end if
'Instanciamos y abrimos nuestro objeto conexion
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "sigma"

'Ahora creamos la sentencia SQL
sSQL="Insert Into [instalaciones] (instalacion,EnUso) values ('" & instalacion & "','" & enuso & " ')"
'Ejecutamos la orden
set RS = Conn.Execute(sSQL)
%>
<h1><div align="center">Registro Insertado</div></h1>
<div align="center"><a href="instalaciones.asp">Visualizar el contenido de la base</a></div>
<%
'Cerramos el sistema de conexion
Conn.Close
%>
</body>
</html>

Referente a tu respuesta:

Primero que nada tienes que fijarte si de tu formulario estas mandando los datos con el metodo post, si es asi tu pagina de formulario estaria bien.

Segundo si tu codigo lo copiaste y lo pegaste en el mensaje me parece que en el momento de insertar los valores no lo debe hacer porque estan como comentarios fijate

'sSQL="Insert Into [instalaciones] (instalacion,EnUso) values ('" &
instalacion & "','" & enuso & " ')"

la primnera comilla no deberia estar, y asi estan algunas lineas mas de tu codigo, revisalo:.

Bueno tambien observo y te aconsejo que tu campo enuso al momento de declarar el if pongas el -1 entre comillas ya que solo es un referente para poder activar o desactivar y no un valor numeral, pero mi preferencia personal en estos casos es utilizar un si, si esta activo y un no si no lo esta, mas sencillo.

A otra cosa tienes que estar seguro que tu campo enuso de la base de datos sea si/no, y tambien de que no este predeterminada en si o no.

Por ultimo muchas veces asunque no locreas he tenido problemas con los campos con nombres que empiezan con inst de instalar, comand, false, etc. ya que son comandos propios del lenguaje, talves tambien pueda ser ello, si no entonces es de tu formulario no estas enviando bien los datos, revisalo.

Hey un momento en tu codigo no veo la conexion a la base de datos, lo tienes en una sesion, no estas declarando el nombre de tu base de datos sabes, tienes que nomas revisar bien tu codigo si no lo solucionas ponlo tus dos codigos aqui y ya veremos como te ayudamos.

--- Las comillas estaba puestas para depuración
--- El campo si que existe en la BD y es de si/no

No se como tratar el checkbox del formulario y capturar el valor de enuso para introducirlo en la tabla.

Gracias
  #2 (permalink)  
Antiguo 24/07/2003, 01:53
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 20 años, 11 meses
Puntos: 14
De acuerdo Halle tu falla

Mira solo estaba mal lo siguiente en tu pagina del formulario:

<input type="checkbox" name="enuso" value="chekbox">

el value no era chekbox si no tiene que ser el valor que vas a recoger:

<input type="checkbox" name="enuso" value="si">

cambialo y ya, toma encuenta que el campo value es para que le asignes el valor que quieras.

ademas no te olvides de cambiar tambien en tu pagina donde recojes los datos el :

if enuso=-1 then

por:

if enuso="si" then

Suerte:
__________________
:policia: Uno para todos y todos para uno.
  #3 (permalink)  
Antiguo 24/07/2003, 03:10
 
Fecha de Ingreso: julio-2003
Mensajes: 6
Antigüedad: 20 años, 10 meses
Puntos: 0
SANDER respuesta

Joer tio, ya me sabe mal, pero sigue sin funcionar:

Ya he cambiado lo del checkbox y la sentencia if pero sigue sin funcionar.

Si pongo:

if enuso="si" then
enuso=true
else
enuso=false
end if

me dice que no coincide el tipo

si pongo:

if enuso="si" then
enuso="0"
else
enuso="-1"
end if

no me da ningun error, pero voy a la BD y si en la pagina enuso esta marcada, en la BD no me la marca, al igual que si pongo:

if enuso="si" then
enuso=0
else
enuso=-1
end if

he pensado tb ponerlo lo de true o false en castellano pero me dice que tampoco coincide el tipo, toy ya desesperado.

Muchas gracias por la paciencia
  #4 (permalink)  
Antiguo 24/07/2003, 03:47
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
En SQL Server los booleanos se referencian como 0 (falso) y 1 (verdadero).
Prueba esto:

if enuso="si" then
enuso=1
else
enuso=0
end if

Un saludo.
  #5 (permalink)  
Antiguo 24/07/2003, 04:08
 
Fecha de Ingreso: julio-2003
Mensajes: 6
Antigüedad: 20 años, 10 meses
Puntos: 0
respuesta

pero en access tb, la bd es de access
  #6 (permalink)  
Antiguo 24/07/2003, 04:24
Avatar de AlexNV  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años
Puntos: 1
en access también
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 21:25.