Hola a todos
cómo podría compactar bases de datos en access 2000 y en
sql server mediante un código en ASP?
encontré algo por internet, pero no debo especificar bien
las rutas porque no me funciona, me podrías dar un ejemplo
de cómo debo definir el path, etc? muchas gracias por
adelantado. Lo que encontré era lo siguiente:
<%
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("./db")
'##################################################
'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 (" La base de datos <B>" & Request.form
("DBFileName") & "</B> fue compactada con exito.")
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
%>
<p align="center"><b>Seleccionar la base para compactar de
la lista</b>
<form method="POST" action="" id=form1 name=form1>
<%dbList%><BR><BR>
<input type="submit" value="Compactar" name="compactar">
</form></p>
Leer las respuestas