Cosulta con el UPDATE
Hola Averías, tengo una consulta que creo que es muy simple, pero no logro encontrarle la vuelta.
Hace unos dos meses más o menos te hice una consulta, que es muy larga de explicar ahora, pero en fin me recomendaste que en una tabla de access haga un campo con nombre "activo", que sea boolean, y que cuando quiero agregar un registro, en vez de agregar siempre, que busque alguno inactivo y lo actualice para poder "reutilizarlo". El tema es que hice todo, pero cuando lo quiero ejecutar recibo el siguiente error en el navegador:
Error de compilación de Microsoft VBScript error '800a0401'
Se esperaba un final de instrucción
/TMP6fb937sz72.asp, line 28
Update tarifas Set destino="Playa" where id=1
---------------^
y ese "^" apunta a la S de Set.
el codigo fuente del ASP es:
<!--#include virtual = "/Includes/conexion.asp"-->
<%
Set rtarifa= Server.CreateObject("Adodb.recordset")
rtarifa.Activeconnection=con
rtarifa.Cursortype=AdopenDynamic
rtarifa.Source="Select * from tarifas"
rtarifa.open()
dim nuevo, destino
'Primero tiene que buscar algun programa que no este activo
'Colocamos una variable que cambie por el id del programa no activo
'y al principio la ponemos en cero.
Nuevo=0
do while not rtarifa.eof
if rtarifa("activo")=false then
Nuevo=rtarifa("id")'si la encontro, cambia nuevo por la id del programa obsoleto
exit do
end if
rtarifa.movenext
Loop
Response.write(nuevo)
if nuevo<>0 then
'si es diferente de cero quiere decir que encontro alguno inactivo
Update tarifas Set destino="Playa" where id=nuevo
else
response.write("No se han encontrado registros inactivos")
end if
rtarifa.close
set rtarifa=nothing
%>
Tengo la sospacha de que tengo que colocar la sentencia UPDATE en una variable que puedo llamar por ejemplo SQL, y después hacer rtarifa.execute(SQL). Creo que algo así es lo que leí en algunas páginas, pero en este caso, el recorset ya lo abrí y lo use, no se si se puede volver a abrir(con las modificaciones hechas por el update). Espero que puedas ayudarme con esto. Muchas gracias de antemano.
Hace unos dos meses más o menos te hice una consulta, que es muy larga de explicar ahora, pero en fin me recomendaste que en una tabla de access haga un campo con nombre "activo", que sea boolean, y que cuando quiero agregar un registro, en vez de agregar siempre, que busque alguno inactivo y lo actualice para poder "reutilizarlo". El tema es que hice todo, pero cuando lo quiero ejecutar recibo el siguiente error en el navegador:
Error de compilación de Microsoft VBScript error '800a0401'
Se esperaba un final de instrucción
/TMP6fb937sz72.asp, line 28
Update tarifas Set destino="Playa" where id=1
---------------^
y ese "^" apunta a la S de Set.
el codigo fuente del ASP es:
<!--#include virtual = "/Includes/conexion.asp"-->
<%
Set rtarifa= Server.CreateObject("Adodb.recordset")
rtarifa.Activeconnection=con
rtarifa.Cursortype=AdopenDynamic
rtarifa.Source="Select * from tarifas"
rtarifa.open()
dim nuevo, destino
'Primero tiene que buscar algun programa que no este activo
'Colocamos una variable que cambie por el id del programa no activo
'y al principio la ponemos en cero.
Nuevo=0
do while not rtarifa.eof
if rtarifa("activo")=false then
Nuevo=rtarifa("id")'si la encontro, cambia nuevo por la id del programa obsoleto
exit do
end if
rtarifa.movenext
Loop
Response.write(nuevo)
if nuevo<>0 then
'si es diferente de cero quiere decir que encontro alguno inactivo
Update tarifas Set destino="Playa" where id=nuevo
else
response.write("No se han encontrado registros inactivos")
end if
rtarifa.close
set rtarifa=nothing
%>
Tengo la sospacha de que tengo que colocar la sentencia UPDATE en una variable que puedo llamar por ejemplo SQL, y después hacer rtarifa.execute(SQL). Creo que algo así es lo que leí en algunas páginas, pero en este caso, el recorset ya lo abrí y lo use, no se si se puede volver a abrir(con las modificaciones hechas por el update). Espero que puedas ayudarme con esto. Muchas gracias de antemano.
1 Respuesta
Respuesta de averias33
1