Home DeRienzo.net
Chi Siamo Portfolio News Tutorial Servizi Directory Download Contattaci
 
Compattare un Database Access

Spesso, ci ritroviamo, un sito che all'inizio della sua "carriera" era veloce, ed affidabile, ma col passare del tempo, e con la crescita dello stesso  ( e della community ), si ritrova ad essere sempre piu' lento e/o pesante.

Molte volte, cio' che accade, non e' a causa della "vecchiaia" dei nostri script, ma perche' il nostro db, ha bisogno di una rispolverata in modo da snellirsi e diventare piu' veloce.

Ecco quindi, che si pensa subito :

- Scarico il database
- Lo apro con Access
- Vado in Strumenti -> Utilita' Database -> Compatta
- Re inserisco il db sul sito

Beh... un operazione e' piuttosto noiosa, non trovate?
Questo, oltre a farci perder tempo, ci riporta anche dei problemi del tipo : " e se qualcuno ha aggiunto/modificato qualche dato/commento mentre io facevo questa operazione" ?

E allora, perche' non cercare di creare uno script che faccia questo compito automaticamente e senza dover trasferire 2 volte il db ( 1 volta in download ed 1 in upload ) ?

Vediamo un po'come :


<%
Function CompattaDB(dbname, password)

'percorso del db
percorsodb = Server.MapPath(dbname)

'Creiamo una connessione al db e una connessione ad un db temporaneo
Dim cnfrom, cnto
cnfrom = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&dbpath
cnto = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&dbpath&".temp"

'se il db è protetto da password...
If password<>"" Then
cnfrom = cnfrom&";Jet OLEDB:Database Password="&password
cnto = cnto&";Jet OLEDB:Database Password="&password
End If

Dim engine
Set engine = Server.CreateObject("JRO.JetEngine")
'compatta il database
engine.CompactDatabase cnfrom, cnto

Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject")
'il db originale lo elimino
fso.DeleteFile percorsodb
' Rinomino ildb temporaneo con il nome del db originale
fso.MoveFile percorsodb&".temp", percorsodb

'Libero le risorse
Set fso = nothing
Set engine = nothing
End Function
%>

Per facilita', ho scritto lo script in una funzione. In questo modo, quando vorro' richiamarlo, bastera' creare una pagina contenente il seguente codice :


<%
'chiamo la funzione per la compressione del database
Call CompattaDB("nomedb.mdb", "")
Response.Write("Il DataBase è stato compattato con successo!")
%>


I parametri che la funzione accetta sono :

- dbname: il nome del database
- password: l'eventuale password con cui è protetto il database. (facoltativa)

Bello no? :)

Alla prossima!!

Ultimi Script inseriti

21/10/2003 - Azzerare tutti i valori delle variabili
21/10/2003 - Asp e XML
20/10/2003 - Seconda Lezione di Asp
22/09/2003 - Prima Lezione di Asp
09/09/2003 - La Paginazione
DeRienzo.net ®2003-2004 Vietata la riproduzione totale o parziale. Tutti i diritti sono riservati.

 
partners
Cartucce.it
www.sastgroup.com tutorials e guide per il web
Italia In Radio.com
SiervoPlast.it
GDesign.it
DeRienzo.net
DeRienzo.net
Licenza Creative Commons
I Tutorial e gli articoli sono pubblicati sotto una Licenza Creative Commons.