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

Problemas con Update

Estas en el tema de Problemas con Update en el foro de ASP Clásico en Foros del Web. Hola a todos: Estoy queriendo actuazlizar los registros de una base de datos, la manera como estoy haciendolo es esta: De una ASP en la ...
  #1 (permalink)  
Antiguo 16/10/2007, 04:55
Avatar de gagarin  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 550
Antigüedad: 23 años, 3 meses
Puntos: 4
Problemas con Update

Hola a todos:

Estoy queriendo actuazlizar los registros de una base de datos, la manera como estoy haciendolo es esta:

De una ASP en la que se muestran los registros a consultar envío a través de una URL un querystring a una ASP llamada edita.asp, ésta recoge el solicitud en el querystring y me muestra los datos del registro en un form, despues con un boton hago el submit al mismo ASP haciendo un UPDATE en el SQL, éste se hace pero me da un error ya que al poner en el form esto: <input name="nombreyapellidos" type="text" class="datosb" id="nombreyapellidos" value="<%=rs("nombreyapellidos")%>" size="35"></td> no hay datos en el recordset, espero me entiendan.

Se me ocurre alguna función que una vez hecho el update vuelva a hacer la consulta o algo así y entonces me muestre los datos ya actualizados.

así es como hago la consulta:

edita.asp
Código:
<%solicitud = Request.QueryString("solicitud")%>
<%
':::::::Esto es para el submit del formulario:::::::
nombreyapellidos = Request.form("nombreyapellidos")
correoelectronico = Request.form("correoelectronico")
telefono = Request.form("telefono")
pais = Request.form("pais")
provincia = Request.form("provincia")
ciudad = Request.form("ciudad")
direccion = Request.form("direccion")
codigopostal = Request.form("codigopostal")
id = Request.Form("id")
%>
<%
if id = "" THEN
sSQL="SELECT * FROM Solicitudes WHERE id_solicitud IN (" & solicitud & ")"
Response.write("telefono vacío")
ELSE 

sSQL="UPDATE Solicitudes SET nombreyapellidos= '" & nombreyapellidos & "', correoelectronico = '" & correoelectronico & "', 
telefono = '" & telefono & "', pais ='"& pais & "', provincia = '" & provincia & "', ciudad = '" & ciudad & "', 
direccion = '"& direccion &"', codigopostal = '"& codigopostal &"' WHERE id_solicitud = (" & id & ")"

':::::::INTENTÉ ESTO:::::::::::
if sSQL = false THEN
Response.write("sql es true")
sSQL="SELECT * FROM Solicitudes WHERE id_solicitud IN (" & id & ")"
END IF

'Response.write("id contiene datos" & id)
'Response.write(nombreyapellidos)
END IF
Gracias por haber leído hasta aquí
__________________
Temiqui Iztoc Cualtlia Elhuayotl
  #2 (permalink)  
Antiguo 16/10/2007, 07:45
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Problemas con Update

Cita:
if id = "" THEN
sSQL="SELECT * FROM Solicitudes WHERE id_solicitud IN (" & solicitud & ")"
Response.write("telefono vacío")
ELSE

sSQL="UPDATE Solicitudes SET nombreyapellidos= '" & nombreyapellidos & "', correoelectronico = '" & correoelectronico & "',
telefono = '" & telefono & "', pais ='"& pais & "', provincia = '" & provincia & "', ciudad = '" & ciudad & "',
direccion = '"& direccion &"', codigopostal = '"& codigopostal &"' WHERE id_solicitud = (" & id & ")"

':::::::INTENTÉ ESTO:::::::::::
if sSQL = false THEN
Response.write("sql es true")
sSQL="SELECT * FROM Solicitudes WHERE id_solicitud IN (" & id & ")"
END IF
'Response.write("id contiene datos" & id)
'Response.write(nombreyapellidos)
END IF
No veo donde ejecutas los query... sólo los estas concatenando a tu variable sSQL
  #3 (permalink)  
Antiguo 16/10/2007, 09:51
Avatar de gagarin  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 550
Antigüedad: 23 años, 3 meses
Puntos: 4
Re: Problemas con Update

Cita:
<%solicitud = Request.QueryString("solicitud")%>
Es justo la primera linea, esto viene de un listado a una pop up usando este query: edita.asp?solicitud=<%=rs("id_solicitud")%> lo que resulta en: edita.asp?solicitud=548678 Esto lo que tiene son unos form para editar los datos.

En los campos del formulario se ven los datos del usuario con el ID 548678 qué pasa, que el UPDATE lo hace pero despues me envía un error pues lo mando al mismo edita.asp y cuando carga el query del principio está vacío y por tanto el rs. también y por eso me marca el error pero no sé como solucionarlo, quizá no estoy ni qiquiera haciendo bien el UPDATE.

Espero ahora si esté un poco más claro
__________________
Temiqui Iztoc Cualtlia Elhuayotl
  #4 (permalink)  
Antiguo 16/10/2007, 10:18
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
Re: Problemas con Update

lo que Cesar() te menciona es donde ejecutas las sentencias, no de donde extraes el valor

no esta esta linea
set RS = CXN.Execute(SQL)

ya que en el codigo que escribes no se encuentra nada de eso

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 16/10/2007, 15:37
Avatar de gagarin  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 550
Antigüedad: 23 años, 3 meses
Puntos: 4
Re: Problemas con Update

vale que no me enteré...

la conexión viene justo debajo de esto y es algo así :

Código:
	Set Conn = Server.CreateObject("ADODB.Connection")
		Conn.Open "FILEDSN=E:\wwwroot\bd\solicitudes.dsn"
	 	Set rs= Conn.Execute(sSQL)
Haciendo esto hace el update pero el RS se queda vacío y me indica que el item está vacío


si pongo por ejemplo esto:
Código:
	Set Conn = Server.CreateObject("ADODB.Connection")		
                Conn.Open "FILEDSN=E:\wwwroot\bd\solicitudes.dsn"
	sSQL="SELECT * FROM Solicitudes WHERE id_solicitud IN (" & id & ")"
	Set rs= Conn.Execute(sSQL)
Solo relleno el RS pero no se hace el UPDATE

Espero que ya con esto puedan ayudarme
__________________
Temiqui Iztoc Cualtlia Elhuayotl
  #6 (permalink)  
Antiguo 17/10/2007, 08:08
Avatar de gagarin  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 550
Antigüedad: 23 años, 3 meses
Puntos: 4
Re: Problemas con Update

Please, sigo buscando post con el mismo problema y no encuentro nada que me ayude a saber que es lo que qestoy haciendo mal.
__________________
Temiqui Iztoc Cualtlia Elhuayotl
  #7 (permalink)  
Antiguo 17/10/2007, 08:19
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
Re: Problemas con Update

gagarin, por que mandas pedir, mediante los dos metodos POST and GET?? alguna razon en especial???

cuando haces la ejecucion del codigo, si traen todos los datos, cuando formas la sentencia UPDATE, podrias pegar la sentencia generada???
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #8 (permalink)  
Antiguo 17/10/2007, 08:46
Avatar de gagarin  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 550
Antigüedad: 23 años, 3 meses
Puntos: 4
Re: Problemas con Update

Shiryu_Libra perdona pero no entiendo mucho lo que me preguntas, por un lado según yo todo lo estoy enviando por el método post, no sé donde ves eso pues quizá, cóo soy novato con ASP estoy haciendo algo mal y trabajando con los datos con los dos métodos.

Cita:
cuando haces la ejecucion del codigo, si traen todos los datos, cuando formas la sentencia UPDATE, podrias pegar la sentencia generada???
Perdona, no sé a qué te refieres.

No sé si a esto te refieres

Código:
sSQL="UPDATE Solicitudes SET nombreyapellidos= 'Juio Cesar Tamudo', correoelectronico = '[email protected]', 
telefono = '6235948', pais ='España', provincia = 'Madrid', ciudad = 'Móstoles', 
direccion = 'calle no 7', codigopostal = '28089' WHERE id_solicitud = ("58689")"
__________________
Temiqui Iztoc Cualtlia Elhuayotl
  #9 (permalink)  
Antiguo 17/10/2007, 09:05
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
Re: Problemas con Update

he notado que me faltaron signos de puntuacion en la expresion anterior,
ahora.... todas tus campos en la tabla son de tipo text?? o tienes alguno de tipo numerico....

es en referencia a la construccion de tu sentencia UPDATE, tienes telefono y codigo postal, como tipo string... si estan bien??

otra pregunta.... el id_solicitud es de tipo autoincremental o texto??...

si tienes algun campo de la sentencia con el tipo incorrecto, entonces, esta sentencia no se ejecuta

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #10 (permalink)  
Antiguo 17/10/2007, 17:21
Avatar de CésarBalaguer  
Fecha de Ingreso: octubre-2006
Ubicación: en mi casa
Mensajes: 181
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Problemas con Update

ok, dos cosas a tomar en cuenta...

primero: que cuando ejecutas un UPDATE, INSERT o DELETE no requieres un recordset, ùnicamente con el Conexion.Execute strsql es mas que suficiente, los recordset se usan cuando tu query devuelve un cursor y en esos 3 casos no devuelve ninguno.

segundo:
Cita:
sSQL="UPDATE Solicitudes SET nombreyapellidos= '" & nombreyapellidos & "', correoelectronico = '" & correoelectronico & "',
telefono = '" & telefono & "', pais ='"& pais & "', provincia = '" & provincia & "', ciudad = '" & ciudad & "',
direccion = '"& direccion &"', codigopostal = '"& codigopostal &"' WHERE id_solicitud = (" & id & ")"

if sSQL = false THEN
Response.write("sql es true")
sSQL="SELECT * FROM Solicitudes WHERE id_solicitud IN (" & id & ")"
END IF
si te das cuenta en tu còdigo son dos script los que quieres ejecutar y por lo que he leido solo tienes un execute al final del IF, por otro lado, evaluas tu variable I]sSQL=false[/I]cuando es una variable de tipo string en la que has concatenado el query que hara el UPDATE y que haste ese momento no lo has ejecutado; y claro esta dentro de la condición intentas hacer el SELECT * y no te devuelve los cambios,
y eso es porque la condiciòn sSQL=false no se ejecutarà ya que son de diferentes tipos y eso harà que el SELECT * FROM no se ejecute, y como consecuencia no se mostrarà nada.

mi sugerencia es la siguiente

armas el sSQL con el UPDATE
enseguida lo ejecutas con: Conn.Execute strSqlenseguida armas el SELECT asignandolo a tu variable sSQL
luego lo ejecutas con SET RS=Conn.Execute(sSQL)

y con eso tendras la informaciòn actualizada.

saludos y buena suerte.
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 08:32.