|
" Hay la misma diferencia entre un sabio y un ignorante que entre un hombre vivo y un cadáver " - Aristóteles - ![]() |
Computerfacil.com |
Chat
Fotos
Últimos Posts
Ayuda
Búsqueda
Miembros
Calendario
|
| Bienvenido, invitado ( Identificarse | Registrarse ) | Reenviar mensaje de validación |
|
|
Forista del Mes: amateos1404
|
![]() ![]() ![]() |
| dejavi |
|
![]() Tera user Grupo: Moderadores Mensajes: 3.733 Miembro nº: 17.695 Registrado: 18-January 07 |
290807.
El siguiente código nos permite compactar y reparar una base de datos Access en forma remota. Es decir sin tener que hacerlo a mano entrando a la base de datos y elegir la opcion de Compactar / Reparar. Para aquellos que no lo sepan, cuando usamos bases de datos (en este caso Access), al eliminar informacion, queda el "hueco" de los datos eliminados, ocupando el lugar que anteriormente ocupaban, y los bytes ocupados siguen por la informacion borrada siguen alli estorbando (ocupando) ya que el registro, sigue "estando". Para compactar la base de datos a su tamaño que deberia estar, dentro del access vamos a: Herramientas > Utilidades de las base de datos > Compactar y reparar base de datos Y esto nos reduce el tamaño a los bytes que realmente ocupan los datos. En fin, este script hace lo mismo pero en forma remota. Aqui va. <% 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> --------------------------------------------------------------------------------------------- Lo unico que hay que editar dentro del script es el path al directorio donde se encuentra la base de datos. El propio script recorre el directorio y muestra un combo con todas las bases que estan alli y permite seleccionarla para compactarla Los que deban modificar el DRIVER de la base de datos, pueden hacer con cuidado también. -------------------- |
![]() |
![]() ![]() ![]() |
|
|
|