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

Comillas en el UPDATE

Estas en el tema de Comillas en el UPDATE en el foro de ASP Clásico en Foros del Web. Buenas a todos..... Tengo un problema, que seguro es de comillas, pero me estoy volviendo loco. Al mandar al usuario a una pagina de confirmacion ...
  #1 (permalink)  
Antiguo 18/01/2006, 01:38
Avatar de chemita59  
Fecha de Ingreso: agosto-2005
Ubicación: Madrid
Mensajes: 107
Antigüedad: 19 años, 8 meses
Puntos: 0
Comillas en el UPDATE

Buenas a todos.....

Tengo un problema, que seguro es de comillas, pero me estoy volviendo loco.
Al mandar al usuario a una pagina de confirmacion de insercion, quiero en otra tabla actualizar el valor de un campo de un registro, en la pagina de confirmacion de inserción e incluido el siguiente codigo:

' **************DECLARAMOS VARIABLE PARA ACTUALIZAR SITUACION DE P.G.R. ************
'Dim v1
'Dim misql
'v1= "02"
'v2= Request.Form("NUMORDEN")
' misql= "UPDATE PIRYPGR SET pgr_SITUACION = '"&v1&"' WHERE pir_orden = ''"&v2&"' "
' DICEPGR.ActiveConnection.Execute(misql)


La variable " v2 " contiene el identificador del unico registro que quiero actualizar con el valor de " v1 ", me dice que no coinciden los tipos de datos.
NUMORDEN, TRAE DATOS NUMERICOS.

Porfi, que comilla tengo mal o me falta por añadir, si es que es eso??

Saludos a todos.
  #2 (permalink)  
Antiguo 18/01/2006, 03:18
 
Fecha de Ingreso: diciembre-2005
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Si te dice que no coinciden los tipos y NUMORDEN es numérico define el valor de v1 como numérico ya que lo estas definiendo como var que viene por defecto al hacer Dim, nose si con eso servirá espero que si, si no lo siento, venga ciao
  #3 (permalink)  
Antiguo 18/01/2006, 04:58
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Quitale las comillas a la asignacion:

v1 = 02 ' no--> v1 = "02"

En el UPDATE lo mismo:
UPDATE PIRYPGR SET pgr_SITUACION = "&v1&" WHERE pir_orden = "&v2

Observa que he quitado las comillas simples.

Mira a ver que te funcione y nos cuentas

Un saludo
  #4 (permalink)  
Antiguo 18/01/2006, 05:04
 
Fecha de Ingreso: diciembre-2005
Mensajes: 10
Antigüedad: 19 años, 4 meses
Puntos: 0
Pero si quitas las comillas de la variable sql no te la pillará a la hora de hacer la conexión, no creo que el fallo esté en esas comillas, pa mi que son necesarias, bueno ya nos dirás, pero yo no las quitaría, siempre he hecho todas las consultas a bbdd con las comillas y metiendo la sentencia luego en el execute
  #5 (permalink)  
Antiguo 18/01/2006, 09:12
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 21 años, 6 meses
Puntos: 27
probalo
tammander tiene razon devez de hacerlo asi

verifica si pgr_SITUACION es numerico y pir_orden tambien

si son numericos los campos en la base de datos entonces solo cerciorate que sean numericas las variables

v1 = cInt(v1)
v2 = cInt(v2)
'ahi ya las forzas a ser numericas


En el UPDATE lo mismo:
UPDATE PIRYPGR SET pgr_SITUACION = "&v1&" WHERE pir_orden = "&v2
__________________
JuanRa Pérez
San Salvador, El Salvador
  #6 (permalink)  
Antiguo 19/01/2006, 06:37
Avatar de chemita59  
Fecha de Ingreso: agosto-2005
Ubicación: Madrid
Mensajes: 107
Antigüedad: 19 años, 8 meses
Puntos: 0
Pues va ser que no......
me sigue dando el mismo error, aqui va al codigo...
' **************DECLARAMOS VARIABLE PARA ACTUALIZAR SITUACION DE P.G.R. ************

Dim v1
Dim misql
v2 = cInt(v2)
v1= "02"
v2= Request.Form("NUMORDEN")
misql= "UPDATE PIRYPGR SET pgr_SITUACION = "&v1&" WHERE pir_orden = "&v2
DICEPGR.ActiveConnection.Execute(misql)

He comprobado por activa y por pasiva que el valor que se envia en el formulario es numerico, pero algo ocurre porque me da el siguiente error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'pir_orden ='.

/RRLL/PIRYPGR/ANADEPLANOK.asp, line 61

Lo que quiere decir que algo ocuure con esa variable, enfin.. alguna propuesta de solucion mas....


saludos a todos y gracias por contestar
  #7 (permalink)  
Antiguo 19/01/2006, 06:44
 
Fecha de Ingreso: julio-2005
Mensajes: 137
Antigüedad: 19 años, 10 meses
Puntos: 0
hola, prueba con:

CODIGO ORIGINAL:
misql= "UPDATE PIRYPGR SET pgr_SITUACION = '"&v1&"' WHERE pir_orden = ''"&v2&"' "

CODIGO MODIFICADO:

misql= "UPDATE PIRYPGR SET pgr_SITUACION = '"&v1&"' WHERE pir_orden = '''&v2&'"

Fijate que después de la condición le indicas que pir_orden= al valor de la variable v2.

Espero que te sirva, saludos
  #8 (permalink)  
Antiguo 19/01/2006, 06:46
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Si, ese error significa que v2 esta vacio o es null. Haz una comprobacion antes para ver. Otra cosa si v1 es alfanumerico deberias ponerlo entre comillas.

Código:
Dim v1
Dim misql
if not isNull(v2) and not isEmpty(v2) then
    v2 = cInt(v2)
    v1= "02" 
    v2= Request.Form("NUMORDEN")
    misql= "UPDATE PIRYPGR SET pgr_SITUACION = '"&v1&"' WHERE pir_orden = "&v2
    DICEPGR.ActiveConnection.Execute(misql)
else
    response.write "Error en v2. Es nulo o esta vacio."
end if
Un saludo
  #9 (permalink)  
Antiguo 19/01/2006, 06:59
Avatar de chemita59  
Fecha de Ingreso: agosto-2005
Ubicación: Madrid
Mensajes: 107
Antigüedad: 19 años, 8 meses
Puntos: 0
efectivamente v2, me dice que es nulo o vacio, pero con esto alucino,

Como ya he comentado esta operacion de actualizacion la quiero hacer en una pagina de confirmacion de insercion de registro y efectivamente el valor de NUNORDEN si que se graba en la tabla en la que añado el registro.

Cual es el motivo por el que entonces el request no me trae datos???

Saludos y gracias por la rapidez de respuesta.
  #10 (permalink)  
Antiguo 19/01/2006, 07:01
Avatar de chemita59  
Fecha de Ingreso: agosto-2005
Ubicación: Madrid
Mensajes: 107
Antigüedad: 19 años, 8 meses
Puntos: 0
o quizas la instruccion debo ponerla en la pagina con el formulario de insercion de registro y meterla dentro del codigo que me redirecciona a la pagina de confirmaicon de insercion???

Seria otra solucion???
  #11 (permalink)  
Antiguo 19/01/2006, 10:31
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
¿Porque no la pasas por GET? Asi verias en la barra de direccion que valor toma v2:

v2= Request.QueryString("NUMORDEN")



Un saludo
  #12 (permalink)  
Antiguo 26/01/2006, 06:56
Avatar de chemita59  
Fecha de Ingreso: agosto-2005
Ubicación: Madrid
Mensajes: 107
Antigüedad: 19 años, 8 meses
Puntos: 0
Gracias a todos los que han contestado,

Aprovechando la circunstancia he actualizado dos tabla y todo ha funcionado perfectamente.

He introducido alguna variable de mas, pero con la unica intencion de clarificar el codigo.

Por si le vale a alguien:

' **************DECLARAMOS VARIABLE PARA ACTUALIZAR SITUACION DE P.G.R. ************
Dim v1, v2, v3, v4
Dim misql1, misql2
v1= "01"
v4= "02"
RSPLANES.MoveFirst
' Iniciamos el bucle para asignar los valores a las variables y modificar los valores de los campos de situacion del P.G.R.

Do while Not RSPLANES.EOF
v2= Trim(RSPLANES.Fields.Item("po18_orden"))
v3= Trim(RSPLANES.Fields.Item("po18_eliminada"))
If v3 = "00" then
misql1= "UPDATE PIRYPGR SET pgr_SITUACION = '"&v4&"' WHERE pir_orden = "&v2
DICEPGR.ActiveConnection.Execute(misql1)
misql2= "UPDATE PGO18 SET po18_eliminada = '"&v1&"' WHERE po18_orden = "&v2
RSPLANES.ActiveConnection.Execute(misql2)
End If
RSPLANES.MoveNext
Loop
RSPLANES.MoveFirst


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 12:40.