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

Actualizar campo Si/No

Estas en el tema de Actualizar campo Si/No en el foro de ASP Clásico en Foros del Web. Hoal tengo en una BD de acess un campo Si/No. Al recoger el valor de este campo y mostrarlo en una caja d etexto me ...

  #1 (permalink)  
Antiguo 31/05/2007, 05:00
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Actualizar campo Si/No

Hoal tengo en una BD de acess un campo Si/No.
Al recoger el valor de este campo y mostrarlo en una caja d etexto me muestro los valores True o False.

Si quiero modificar este valor en la caja de texto y darle al boton actualizar para cambiarlo en la base de datos me hace lo que quiere.

Que valor debo de escribir en la base de datos para que me lo actualiza en el campo Si / no de la DB?

Gracias
  #2 (permalink)  
Antiguo 31/05/2007, 06:39
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Actualizar campo Si/No

campoBool = request.Form("checkbox1") <> ""

Pon tu código y asi sabremos como ayudarte mejor.
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 31/05/2007, 08:58
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Actualizar campo Si/No

Haber eso ya lo hago lo que pasa es que cuando la casilla esta sin activar, el valor que me toma la variable es vacio y al hacer el update en la base de datos me da este error:

No coinciden los tipos de datos en la expresión de criterios.

He probado metiendole el valor false, 0 etc pero me sale eso todo el rato
  #4 (permalink)  
Antiguo 31/05/2007, 09:00
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Actualizar campo Si/No

¿Qué BD usas? Access, MSSQL, Oracle, MySQL, Informix,... ¿? ¿Puedes poner el código que recibe el POST?
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 31/05/2007, 09:05
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Actualizar campo Si/No

Uso access.

La variable que lo recoge es esta:

vari=request.Form("vari")

sql="UPDATE tabla1 SET vari= '"&vari&"', WHERE campo2=" &Request.querystring("campo2")& ""
  #6 (permalink)  
Antiguo 31/05/2007, 09:16
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Actualizar campo Si/No


Cita:
sql="UPDATE tabla1 SET vari= '"&vari&"', WHERE campo2=" &Request.querystring("campo2")& ""

Cita:
sql="UPDATE tabla1 SET vari= "&vari&", WHERE campo2=" &Request.querystring("campo2")& ""
suerte
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #7 (permalink)  
Antiguo 31/05/2007, 09:37
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Actualizar campo Si/No

Me sigue dando el mismo error quitando las comillas simples.
  #8 (permalink)  
Antiguo 31/05/2007, 10:04
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Actualizar campo Si/No

ese campo lo recojes de un checkbox???

si es asi, cuando te venga vacio o nulo, asignale valor 0(cero), ya que access no te permite tener ese campo vacio, ya que es campo logico, es si/no, pero tambien puede ser 1/0
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #9 (permalink)  
Antiguo 01/06/2007, 01:06
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Actualizar campo Si/No

Prueba asi:

Código:
vari=request.Form("vari") <> ""

sql="UPDATE tabla1 SET vari= "&vari&",  WHERE campo2=" &Request.querystring("campo2")& ""


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #10 (permalink)  
Antiguo 01/06/2007, 01:57
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Actualizar campo Si/No

Si recogo el valor de un checkbox y lo que hago es, lo recojo en una variable y despues miro si es o no vacio.

if campo= "" then
campo = 0
else
campo=1
end if

Esto lo hace bien pero en la sentencia update que he usado (ahora sin las comillas simples) me da este error:

No coinciden los tipos de datos en la expresión de criterios
  #11 (permalink)  
Antiguo 01/06/2007, 02:06
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Actualizar campo Si/No

Access usa -1 para Si y 0 para No. Si no veo el código completo, no puedo ayudarte mucho mas. Yo lo haria asi:

Código:
valor_checkbox = 0
if request("checkbox") <> "" then valor_checkbox = -1
idx = check4SQL(request("idx"))
if request("idx") <> "" and isNumeric(idx) then
     sql = "UPDATE table SET booleanField = " & valor_checkbox & " WHERE id = " & idx
     conn.execute(sql)
end if
Como ves, me aseguro de todos y cada una de las variables contenga algun dato. No dejes nunca que una variable pueda causar un error por estar vacia o no contenga lo que tu quieres que contenga. Eso es un agujero de seguridad enorme.


Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #12 (permalink)  
Antiguo 01/06/2007, 02:30
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Actualizar campo Si/No

Este es el codigo del checkbox:

Cita:
<input type="checkbox" name="campo2" <% if rs("campo2") = True then response.write (" checked ") end if%> >
Y en la otra página .asp lo recogo:

Cita:
campo2=request.Form("campo2")

if financia= "" then
financia = 0
else
financia=-1
end if

sql="UPDATE tabla1 SET campo2= "&campo2&" WHERE campo1=" &Request.querystring("campo1")& ""
Y me sigue dando el mismo error de que no coinciden los tipos de datos con la expresión de criterios y no lo entiendo el por qué.

En la BD, campo2 es de tipo Si/no.
  #13 (permalink)  
Antiguo 01/06/2007, 02:39
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Actualizar campo Si/No

En la otra página .asp campo2 es lo mismo que financia? Como usas diferentes variables no se si es un error tipográfico o no. De todas formas, chequea que Request.querystring("campo1") contenga algun dato y que este sea numérico segun veo (no usas comillas por lo que presupongo que es numérico).
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #14 (permalink)  
Antiguo 01/06/2007, 02:47
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Actualizar campo Si/No

Si es lo mismo es un error tipografico. Es asi:

Cita:
campo2=request.Form("campo2")

if campo2= "" then
campo2 = 0
else
campo2=-1
end if

sql="UPDATE tabla1 SET campo2= "&campo2&" WHERE campo1=" &Request.querystring("campo1")& ""
Respecto al Query si el valor es numerico y lo pasa correctamente.
  #15 (permalink)  
Antiguo 01/06/2007, 04:15
 
Fecha de Ingreso: junio-2002
Mensajes: 93
Antigüedad: 22 años
Puntos: 0
Re: Actualizar campo Si/No

Al checkbox no le asignas un valor.
Yo pondria en la primera página:
Código:
<input type="checkbox" name="campo2" value="Si" <% if rs("campo2") = True then response.write (" checked ") end if%> >
y en la segunda:

Código:
If request.form("campo2")="Si" then
campo2="1"
else
campo2="0"
end if
Yo uso las comillas para asignar el valor y me funciona correctamente.

Un saludo
  #16 (permalink)  
Antiguo 01/06/2007, 04:28
Avatar de Laika  
Fecha de Ingreso: octubre-2001
Mensajes: 1.376
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Actualizar campo Si/No

Gracias,

Ahora por finme funciona!!

  #17 (permalink)  
Antiguo 15/10/2007, 08:17
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Re: Actualizar campo Si/No

He estado buscando y he encontrado este post, el kit de la cuestión es que yo tengo un problema del mismo estilo y he "copiado" la idea... pero a mi no me va, ¿tengo algo mal en mi código que yo no veo?
Código:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open = Mi-conexión 

If Request.Form("Camp1")="Si" Then
Camp1="True"
else
Camp1="False"
end if

sql = "UPDATE Tabla SET Camp1="&Camp1&" WHERE CampId=" & Request.QueryString("CampId") & ""
Set RS= Conn.Execute(sql)

Conn.Close
Set Conn = Nothing
%>
SaLu2
  #18 (permalink)  
Antiguo 15/10/2007, 11:03
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Actualizar campo Si/No

Uefor
por que no intentas con 0/1??
Cita:
If Request.Form("Camp1")="Si" Then
Camp1=1
else
Camp1=0
end if
por cuestiones de que al escribir "True"/"False" entrecomillado, estas poniendo un STRING, tambien puedes intentarlo sin las comillas,
Cita:
If Request.Form("Camp1")="Si" Then
Camp1=True
else
Camp1=False
end if
prueba y dinos como te fue...
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #19 (permalink)  
Antiguo 15/10/2007, 12:39
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Actualizar campo Si/No

Pues de ninguna de las formas...
El formulario que uso este, a ver si el problema va a estar en lo que envío
Código:
     	     
SQL=" SELECT T1.Camp1, T2.Camp2"
SQL=SQL&" FROM T1 INNER JOIN T2" 
SQL=SQL&" ON T1.Camp1=T2.Camp1"
SQL=SQL&" WHERE CampId="&Id&""
SQL=SQL&" ORDER BY CampId ASC"

set RS=createobject("ADODB.Recordset")
RS.open SQL,conn
do while not RS.eof  
%>  
  
<%=RS("Camp1")%>                       

<input <%if RS("Camp2") = "True" Then Response.Write("checked") End if%> TYPE="checkbox" NAME="checkbox" >
<a href=pag2.asp?Id=<%=RS("Id")%>>Actualizar</a>
  #20 (permalink)  
Antiguo 15/10/2007, 12:50
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Actualizar campo Si/No

mirando el post de arriba el #15, y contraponiendolo con tu pedazo de codigo

Cita:
<input <%if RS("Camp5") = "True" Then Response.Write("checked") End if%> TYPE="checkbox" NAME="checkbox" >
<a href=pag2.asp?Id=<%=RS("Id")%>>Actualizar</a>
en el IF quedaria de esta manera
Cita:
<input <%if RS("Camp5") = True Then Response.Write("checked") End if%> TYPE="checkbox" NAME="checkbox" >
<a href=pag2.asp?Id=<%=RS("Id")%>>Actualizar</a>
realiza una prueba

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #21 (permalink)  
Antiguo 15/10/2007, 13:05
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Actualizar campo Si/No

Lo cierto es que da igual que se las quite o no, he probado y sigue funcionando igual... esa parte de código solo es para activar la casilla dinámicamente por lo que creo que es irrelevante a la hora de mandar los datos a pag2 ¿no es asi?
  #22 (permalink)  
Antiguo 15/10/2007, 13:10
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Actualizar campo Si/No

en efecto, pero me di cuenta de esto tarde tambien

mandas pedir "Camp1"
Cita:
If Request.Form("Camp1")="Si" Then
Camp1="True"
else

Camp1="False"
end if
y el nombre del campo en formulario es "CheckBox", renombra y sin cambiar codigo ejecuta nuevamente

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #23 (permalink)  
Antiguo 15/10/2007, 13:18
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Actualizar campo Si/No

Es una errata de transcripción, en el código si estan pueston correctamente ambos...
  #24 (permalink)  
Antiguo 15/10/2007, 13:20
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Actualizar campo Si/No

Es una errata de transcripción, en el código si estan puestos correctamente ambos...
  #25 (permalink)  
Antiguo 15/10/2007, 13:54
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Re: Actualizar campo Si/No

El error que me da es -- Syntax error in UPDATE statement -- al ejecutar la sentencia ¿más ideas?
  #26 (permalink)  
Antiguo 15/10/2007, 14:18
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Actualizar campo Si/No

podrias escribir el error junto con la sentencia que se genera??
update esto=aesto.... y todo eso
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #27 (permalink)  
Antiguo 16/10/2007, 05:21
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Re: Actualizar campo Si/No

¿Te refieres a esto?
Código:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement. 
pag2.asp, line 28 


sql = "UPDATE buzos_incl SET Patron = "&Patron&" WHERE Id=" & Request.QueryString("Id") & ""
Line 28 ---> rst.Open sql,Conn
  #28 (permalink)  
Antiguo 16/10/2007, 09:40
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 17 años, 10 meses
Puntos: 0
Busqueda Re: Actualizar campo Si/No

Casi lo tengo ya... lo que pasa es que solo me actualiza los datos en el caso de desmarcar el checkbox, si lo marco no me manda el valor True a la base de datos

Una última mano please
Código:
<%
Dim Ptr
Ptr = Request.Form("Ptr")
If Ptr = "Si" Then
Ptr=True
else
Ptr=False
end if

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open = MM_cnx_STRING 

sql = "UPDATE Tabla1 SET Ptr = "&Ptr&" WHERE Id= "&Request.QueryString("Id")&""
set RS = Conn.Execute(sql)

Response.Write(" <table WIDTH='500'><tr><td WIDTH='500'><br><br><blockquote>Los datos se han actualizado con éxito!!! </blockquote><br><br></td></tr></table>")

Conn.Close
Set Conn = Nothing
%>
  #29 (permalink)  
Antiguo 16/10/2007, 10:10
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Actualizar campo Si/No

Uefor, manda imprimir la sentencia SQL, asi veremos en que no esta tomando valor

agrega las lineas en rojo, para pintar la sentencia y la pones aki para mirar que pasa

Cita:
<%
on error resume next
Dim Ptr

Ptr = Request.Form("Ptr")
If Ptr = "Si" Then
Ptr=True
else
Ptr=False
end if

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open = MM_cnx_STRING

sql = "UPDATE Tabla1 SET Ptr = "&Ptr&" WHERE Id= "&Request.QueryString("Id")&""
set RS = Conn.Execute(sql)

response.write "Sentencia SQL="&SQL
response.end

Response.Write(" <table WIDTH='500'><tr><td WIDTH='500'><br><br><blockquote>Los datos se han actualizado con éxito!!! </blockquote><br><br></td></tr></table>")Conn.CloseSet Conn = Nothing%>
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #30 (permalink)  
Antiguo 16/10/2007, 10:16
Avatar de Uefor  
Fecha de Ingreso: agosto-2006
Ubicación: Murcia
Mensajes: 136
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Actualizar campo Si/No

Me dice esto:

Sentencia SQL=UPDATE Tabla1 SET Ptr = false WHERE Id= 652

Última edición por Uefor; 16/10/2007 a las 10:23
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 12:09.