 |
Broncode: Database Compact
Door Bliss Internet Services www.bliss.nl
|
Dit script zorgt ervoor dat microsoft access databases remote gecompact
kunnen worden. Dit scheelt downloadtijd, server ruimte en verbeterd de
performance van de database.
De pagina zal een lijst populeren met alle bestanden die zich in uw data
directory bevinden en met de extensie .mdb eindigen.
|
|
Let op! Bij grotere databases kan het voorkomen dat u uw SCRIPT-TIMEOUT voor
ASP moet ophogen.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>DBCompact.asp</title>
</head>
<body>
<%
' -- Publieke declaraties
Public DATA_PHYSICAL_PATH
Public APPL_PHYSICAL_PATH
Const JET_CONN_PARTIAL = "Provider=Microsoft.Jet.OLEDB.4.0; Data source="
APPL_PHYSICAL_PATH = Request.ServerVariables("APPL_PHYSICAL_PATH")
DATA_PHYSICAL_PATH = Left(APPL_PHYSICAL_PATH, _
InStr(1, LCase(APPL_PHYSICAL_PATH), "\www")) & "data\"
' -- Compact een database, optimalisatie downloadtijd, webserver ruimte en db performance
Private Sub dbCompact(strDBFileName)
Dim SourceConn
Dim DestConn
Dim oJetEngine
Dim oFSO
' -- Maak DSN stateless connecties aan
SourceConn = JET_CONN_PARTIAL & DATA_PHYSICAL_PATH & strDBFileName
DestConn = JET_CONN_PARTIAL & DATA_PHYSICAL_PATH & "temp_" & strDBFileName
' -- Maak ActiveX objecten aan
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oJetEngine = Server.CreateObject("JRO.JetEngine")
' -- Check procedure filesysteem
With oFSO
If Not .FileExists(DATA_PHYSICAL_PATH & strDBFileName) Then
Response.Write ("Niet gevonden: " & DATA_PHYSICAL_PATH & strDBFileName)
Stop
Else
If .FileExists(DATA_PHYSICAL_PATH & "temp_" & strDBFileName) Then
Response.Write ("Er is gedurende de vorige sessie iets fout gegaan. " _
& "Bestandstruktuur wordt gereorganiseerd.")
.DeleteFile (DATA_PHYSICAL_PATH & "temp_" & strDBFileName)
End If
End If
End With
With oJetEngine
.CompactDatabase SourceConn, DestConn
End With
' -- Verwijder het orgineel en benoem de compacte database conform.
oFSO.DeleteFile DATA_PHYSICAL_PATH & strDBFileName
oFSO.MoveFile DATA_PHYSICAL_PATH & "temp_" _
& strDBFileName, DATA_PHYSICAL_PATH & strDBFileName
' -- Vernietig objecten
Set oFSO = Nothing
Set oJetEngine = Nothing
End Sub
' -- Maakt een lijst van bestaande databases aan
Private Sub dbList()
Dim oFolders
Set oFolders = Server.CreateObject("Scripting.FileSystemObject")
Response.Write ("<Select Name=""DBFileName"">")
For Each Item In oFolders.GetFolder(DATA_PHYSICAL_PATH).Files
If LCase(Right(Item, 4)) = ".mdb" Then
Response.Write ("<Option Value=""" & Replace(Item, DATA_PHYSICAL_PATH, "") _
& """>" & Replace(Item, DATA_PHYSICAL_PATH, "") & "</Option>")
End If
Next
Response.Write ("</Select>")
Set oFolders = Nothing
End Sub
%>
<%
Select Case Request.form("cmd")
Case "Compact"
dbCompact Request.form("DBFileName")
Response.Write ("Database " & Request.form("DBFileName") & " is geoptimaliseerd.")
End Select
%>
<p><font size="4">Compact Database</font></p>
<form method="POST" action="">
<p><%dbList%><input type="submit" value="Compact" name="cmd"></p>
</form>
<p> </p>
</body>
</html>
|
 |