Hola
tengo una página ASP que debe extraer datos, mediante una función, de una BD
access y me da algunos problemas bastante serios:
si arranco el ordenador y pruebo la web va estupendamente, pero en el
momento que abro el archivo MDB y lo modifico, aunque luego lo cierre deja
de funcionar todo el web. debo reiniciar el S.O. para que vuelva a funcionar
es un poco engorroso pues cada vez que quiero modificar la BD debo copiarla
fuera del inetpub, modificarla y sobreescribir la original con la copia.
¿alguien sabe que puede ocurrir? ¿qué hago mal?
La estructura es la siguiente:
pagina.asp
contiene unos includes a funciones y procedimientos que se van a usar desde
varios ASP
<!-- #INCLUDE file="inc/iobd.asp" -->
<!-- #INCLUDE file="inc/negocio.asp" -->
<%
dim conexion
conectar conexion (es un procedimiento incluido en iobd.asp para facilitar
las conexiones/desconexiones de la BD)
además, contiene una llamada a una función saca_texto(1) que recoge el
parámetro 1 y devuelve una cadena de texto
desconectar conexion
Los procedimientos conectar/desconectar son los siguientes y estan en
iobd.asp:
sub conectar(byref conexion)
'on error resume next
'abrimos la base de datos
Set conexion = Server.CreateObject("ADODB.Connection")
if Request.ServerVariables("SERVER_NAME") = "jupiter" then
'conexion no dsn
conexion.Open "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=c:\Inetpub\wwwroot\web\db\web.mdb"
else
conexion.Open "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=c:\Inetpub\wwwroot\web\db\web.mdb"
end if
If (Err.Number <> 0) Then
procesar_error "conectar(byref conexion) en iobd.asp.", Err
End If
end sub
sub desconectar(byref conexion)
'on error resume next
'cerramos la conexion
conexion.Close
set conexion = Nothing
If (Err.Number <> 0) Then
procesar_error "desconectar(byref conexion) en iobd.asp.", Err
End If
end sub
la funcion saca_texto que se encuentra en negocio.asp es la siguiente:
Function saca_texto(pagina)
Dim cadena
'on error resume next
dim registro, consulta, num_resultados
consulta = "SELECT * FROM textos WHERE (pagina=" & CInt(pagina) & ") ORDER
BY parrafo"
Set registro = Server.CreateObject ("ADODB.RecordSet")
registro.Open consulta, conexion, 1' adOpenStatic
If (Err.Number <> 0) Then
procesar_error "saca_texto(pagina) en negocio.asp.", Err
End If
num_resultados = registro.RecordCount
if num_resultados > 0 then
while not registro.eof
titulo = registro("titulo")
texto = registro("texto")
if titulo <> "" then
cadena = cadena & "<p class=textoG>" & titulo
end if
cadena = cadena & "<p class=textoM>" & texto
registro.Movenext
wend
end if
registro.Close
Set registro = nothing
saca_texto = cadena
End Function
Leer las respuestas