Foros del Web » Programando para Internet » ASP Clásico »

Compactar BD Access

Estas en el tema de Compactar BD Access en el foro de ASP Clásico en Foros del Web. Esta función sirve para compactar una base de datos de MS Access versión 97 ó 2000. La forma para llamar la función será la siguiente... ...
  #1 (permalink)  
Antiguo 23/05/2002, 10:32
 
Fecha de Ingreso: octubre-2000
Ubicación: Juarez, Chih.
Mensajes: 161
Antigüedad: 23 años, 8 meses
Puntos: 0
Compactar BD Access

Esta función sirve para compactar una base de datos de MS Access versión 97 ó 2000.

La forma para llamar la función será la siguiente...

<%
bdpath = "tu_bd.mdb"
v97 = "True" 'si la bd es access 97
'v97 = "False" 'si la bd es access 2000

If bdpath <> "" Then
bd = server.mappath(bdpath)
Response.Write(CompactDB(bd,v97))
End If
%>

<%
'code by: Michael Brinkley
option explicit
Const JET_3X = 4

Function CompactDB(dbPath, boolIs97)
Dim fso, Engine, strDBPath
strDBPath = left(dbPath,instrrev(DBPath,"\"))
Set fso = CreateObject("Scripting.FileSystemObject&quot ;)

If fso.FileExists(dbPath) Then
Set Engine = CreateObject("JRO.JetEngine")

If boolIs97 = "True" Then
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb;" _
& "Jet OLEDB:Engine Type=" & JET_3X
Else
Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbpath, _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb"
End If
fso.CopyFile strDBPath & "temp.mdb",dbpath
fso.DeleteFile(strDBPath & "temp.mdb")
Set fso = nothing
Set Engine = nothing
CompactDB = "Your database, " & dbpath & ", has been Compacted" & vbCrLf
Else
CompactDB = "The database name or path has not been found. Try Again" & vbCrLf
End If
End Function
%>

Tan sólo creo que faltaría agregar dos líneas a esta función.

server.scriptTimeOut=xxx (en segundos y claro un número alto)

al inicio de la función, para impedir algún error de 'timeout' al realizar el proceso de compactación, y..

server.scriptTimeOut=90

al final de la función para reponer el valor original en esta variable.

  #2 (permalink)  
Antiguo 23/05/2002, 11:43
Avatar de Ruchu  
Fecha de Ingreso: octubre-2001
Mensajes: 698
Antigüedad: 22 años, 8 meses
Puntos: 2
Re: Compactar BD Access

he aqui vgaray y sus tips. :)

ole amigo.
  #3 (permalink)  
Antiguo 23/07/2003, 06:55
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 6 meses
Puntos: 8
Este me ha venido de lujo, habia probado otro código que hay por ahi, pero ese realmente no hacia nada, por lo menos no se veia ningun resultado. Con este compactar, compacta, me falta ver si tambien repara, que aun no se me ha roto desde que tengo el codigo este
__________________
Vayamos por Partes :: Jack el Destripador
  #4 (permalink)  
Antiguo 15/12/2003, 22:17
 
Fecha de Ingreso: enero-2003
Mensajes: 516
Antigüedad: 21 años, 5 meses
Puntos: 0
y podria hacerlo con dsn

Como seria compactar para access 2000 con una conexion dsn
__________________
El PISCO SOLO PUEDE SER PERUANO....SALUD!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:52.