
16/02/2005, 18:41
|
 | | | Fecha de Ingreso: diciembre-2001 Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 23 años, 4 meses Puntos: 16 | |
Compactar y reparar BD en linea Bueno, tengo el siguiente codigo para compactar una base de datos ACCESS, lo curioso es que me funciona perfectamente en local con PWS pero en el servidor no jala:
Código:
<%
Const DriverConexion = "Provider=Microsoft.Jet.OLEDB.4.0; Data source="
Dim strDatabase, strFolder, strFileName
'#################################################
'# Edite las siguientes dos líneas
'# Defina el path de la base de datos. Si desea hacerlo completo, puede hacerlo
StrCarpeta = server.mappath("../")
'##################################################
'Compacta la base de datos
Private Sub dbCompact(StrBaseDeDatos)
if right(StrCarpeta,1) <> "\" then StrCarpeta = StrCarpeta & "\"
Dim SourceConn, DestConn, oJetEngine, oFSO
SourceConn = DriverConexion & StrCarpeta & StrBaseDeDatos
DestConn = DriverConexion & StrCarpeta & "Temp" & StrBaseDeDatos
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oJetEngine = Server.CreateObject("JRO.JetEngine")
If Not oFSO.FileExists(StrCarpeta & StrBaseDeDatos) Then
Response.Write ("Base no encontrada: " & StrCarpeta & StrBaseDeDatos)
else
If oFSO.FileExists(StrCarpeta & "Temp" & StrBaseDeDatos) Then
Response.Write ("Error. Intente Nuevamente.")
oFSO.DeleteFile (StrCarpeta & "Temp" & StrBaseDeDatos)
else
oJetEngine.CompactDatabase SourceConn, DestConn
oFSO.DeleteFile StrCarpeta & StrBaseDeDatos
oFSO.MoveFile StrCarpeta & "Temp"& StrBaseDeDatos, StrCarpeta& StrBaseDeDatos
Response.Write ("<FONT SIZE=4>* La base de datos <B'>" & Request.form("DBFileName") & "</B'> fue compactada con exito.</FONT>")
End If
End If
Set oFSO = Nothing
Set oJetEngine = Nothing
End Sub
'Pinta la lista de bases en ese directorio
Private Sub dbList
Dim oFolders, i
i = 0
Set oFolders = Server.CreateObject("Scripting.FileSystemObject")
Response.Write ("<SELECT name='DBFileName''>")
For Each Item In oFolders.GetFolder(StrCarpeta).Files
If LCase(Right(Item, 4)) = ".mdb" Then
'corrijo el path, y saco la "\"
item = Replace(lcase(Item), lcase(StrCarpeta), "")
item = Replace(Item, "\", "")
Response.Write ("<OPTION value='" & item &"'>" & item &"</OPTION'>")
i = i+1
End If
Next
Response.Write ("</SELECT'>")
Response.Write ("<BR'><BR'>En la carpeta <b'>"& StrCarpeta &"</b'> hay <b'>"& i &"</b'> bases de datos Access.")
Set oFolders = Nothing
End Sub
Select Case Request.form("compactar")
Case "Compactar"
dbCompact Request.form("DBFileName")
End Select
%>
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><font face="Verdana, Arial, Helvetica, sans-serif"><font face="Verdana, Arial, Helvetica, sans-serif">
<p align="center"><font color="#000099"><b>Seleccionar la base para compactar
de la lista</b> </font></font></font></font>
<form method="POST" action="" id=form1 name=form1>
<font color="#000099" size="2" face="Verdana, Arial, Helvetica, sans-serif">
<%dbList%>
<br>
<br>
<input type="submit" value="Compactar" name="compactar">
</font>
</form>
<p></p>
<font color="#000099" size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
<a href="sistema.asp?pan=9">REGRESAR</a> </font>
Tambien tengo uno que crea un respaldo de la misma base de datos y es igual, en local jala pero en servidor no
El error que me marca es este: Error de Microsoft VBScript en tiempo de ejecución error '800a0046' Permiso denegado /portagigas/panel/compactar.asp, line 37 donde la linea 37 es:
oFSO.DeleteFile StrCarpeta & StrBaseDeDatos es decir, si me crea la base de datos lo que no me deja es borrarla  help me
__________________ CreandoWebs.com www.creandowebs.com PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO |