| Autore |
Messaggio |
littlehawk
 Eliminato
0 Discussione
|
21 luglio 2003 alle 18:51:47   Modificato il 21 luglio 2003 alle 19:27:51
Volete compattare i vostri DB ? Ecco la soluzione PERFETTAMNETE FUNZIONANTE !
Prendete il file DATABASE-INC.ASP nella directory /includes/admin e subito prima dell' END SUB inserite questo codice:
If Request.QueryString("compatto") <> "" Then CreateTopTable "OK", "DB Compattato !" Response.Write "<b>Il Database " & Request.QueryString("compatto") & " è stato compattato correttamente !</b>" & vbCRLF CreateBottomTable "" End If CreateTopTable "Compact", "Compatta " & GetTranslation("LANG_DATABASE") Response.Write GLOBAL_SITE_SUBTABLE & vbCRLF Response.Write " <tr class=""tableline1"">" & vbCRLF Response.Write " <form name=""compact"" method=""post"" action=""compatta.asp"">" & vbCRLF Response.Write " <td>" & GetTranslation("LANG_DATABASE") & " " & vbCRLF Response.Write " <select name=""database"" class=""cell"">" & vbCRLF Response.Write " <option value=""" & DB_MAIN & """ name=""database"">PRINCIPALE</option>" & vbCRLF Response.Write " <option value=""" & DB_FORUM & """ name=""database"">FORUM</option>" & vbCRLF Response.Write " </select>" & vbCRLF Response.Write " </td>" & vbCRLF Response.Write " </tr>" & vbCRLF Response.Write " <tr class=""tablelinemain"">" & vbCRLF Response.Write " <td colspan=""2""><input name=""submit"" class=""button"" type=""submit"" value=""Compatta DB""></td>" & vbCRLF Response.Write " </form>" & vbCRLF Response.Write " </tr>" & vbCRLF Response.Write "</table>" & vbCRLF CreateBottomTable "" Naturalmente se avte altri DB potete inserirli con una <option>, ad esempio se avte installato il mio MOD Mercatino, dovrete inserire:
Response.Write " <option value=""" & DB_MERCATINO & """ name=""database"">MERCATINO</option>" & vbCRLF e così via per tutti gli altri DB installati !
Dopidichè create il file COMPATTA.ASP con all'interno questo codice:
<% Dim sPassword, dbase, dbname, oDB, objFSO
sPassword = "VOSTRAPSW" dbase = Request.Form("database") dbname = Server.MapPath("../mdb-database/" & dbase &".mdb")
Set oDB = CreateObject("DAO.DBEngine.36") oDB.CompactDatabase dbname, Server.MapPath("../mdb-database/" & dbase &"TEMP.mdb"), , , ";pwd=" & sPassword
Set oDB = Nothing
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile(""&dbname&"")
objFSO.MoveFile Server.MapPath("../mdb-database/" & dbase &"TEMP.mdb"), dbname
Set objFSO = Nothing
Response.Redirect("/admin/database.asp?compatto="& dbase &"") %>
Copiate il file COMPATTA.ASP nella directory /admin ed il gioco è fatto !
Naturalmente se non avete protetto i DB con password allora togliete:
sPassword = "VOSTRAPSW" pwd=" & sPassword
Testato e perfettamente funzionante !
ENJOY !!! ![[feu]](/smileys/feu.gif)
P.S.: Dimenticavo, per eseguire la compattazione, entrate nel menù admin ed andate sotto la voce QUERY DATABASE, che io ho rinominato GESTIONE DB !
|
littlehawk
 Eliminato
0 Discussione
|
22 luglio 2003 alle 15:37:02 
UHEE ! 30 visite e nessuno che dà nemmeno un'opinione ?
|
freepaolo
 Avanzato
170 Discussioni
|
22 luglio 2003 alle 18:54:42 
Forse sai quale è il motivo!!
Finora non ne ha funzionato nemmeno uno di questi pseudocompattatori e allora nessuno ha più intenzione (compreso me) di mettersi li a perdere del tempo.
Magari questo funziona, chi lo sa!! Io personalmente mi fido solo dell'ftp.
Cmq bravo ugualmente.
Ciaooo.
|
littlehawk
 Eliminato
0 Discussione
|
22 luglio 2003 alle 19:44:04 
Questo non solo funziona, ma funziona anche con DB prottetti da PSW !!!
Io nel mio sito ho 6 DB (tra originali e quelli aggiuntivi dei MOD !) tutti protetti da PSW e me li ha compattati tutti, il main addirittura con un bel 10% in meno...
Ripeto, se usate DB ACCESS, questa è la soluzione !
Funziona una meraviglia...
|
Anna
Responsabile Forum
 Esperto
1146 Discussioni
|
22 luglio 2003 alle 19:58:32 
ciao littlehawk, domattina lo provo su aspnuke, se funge alla perfezione come dici lo mettiamo in download, credo sia un utility indispensabile per aspnuke!
--------------- L’opera umana più bella è di essere utile al prossimo, senza che gli altri abbiano delle pretese (Sofocle)
|
littlehawk
 Eliminato
0 Discussione
|
22 luglio 2003 alle 21:30:41 
Anna ti confermo quanto scritto sopra: FUNZIONA PERFETTAMENTE ! ![[feu]](/smileys/feu.gif)
Testato e ritestato sui DB del mio sito (ovviamente prima per sicurezza li ho salvati !) che sono anche protetti da password. Il DB_MAIN ma l'ha ridotto di un buon 10% !
Ovviamente i DB devono necessitare di compattazione altrimenti le dimensioni rimarranno le stesse !!!
Ciao.
P.S.: ti ha detto nulla RAGGIO_DI_SOLE ?
|
littlehawk
 Eliminato
0 Discussione
|
24 luglio 2003 alle 18:50:55 
Sinceramente non capisco !!! Più di 80 hanno guardato questo post e nessuno che l'ha provato e ne dà nemmeno un'opinione ? ![[!?!]](/smileys/affolement.gif)
Boh ! Si vede che non è una cosa valida...
|
alextheforce
 Amatore
37 Discussioni
|
24 luglio 2003 alle 23:52:06 
sarò un pò ingnorante ma a che serve compattare un database, per ridurre le dimensioni? Se è cosi che me ne faccio visto che ho spazio illimitato su aruba? Scusate l'ignoranza.
|
tonydamo
 Eliminato
0 Discussione
|
30 luglio 2003 alle 19:13:03 
Ciao Little, io l'ho provato, ma mi ha cancellato anche qualcosa dentro il database, e mi dava un'errore (non si vedevano più le pag. ERROR...ecc.), ho dovuto sovrascrivere i database con quelli che avevo salvato in precedenza. Se volete fare una prova, salvatevi prima i database. Ciao a tutti, Tony.
|
emu
Moderatore
 Esperto
1714 Discussioni
|
30 luglio 2003 alle 22:33:14 
L'operazione di compattazione dei DB serve per eliminare i record cancellati (che altrimenti non vengono fisicamente cancellati, ma solo marcati come non validi). Questo aumenta certamente le prestazioni (le ricerche richiedono piu' tempo se devono esaminare record che poi scartano perche' non validi). Inoltre credo che la compattazione riordini i campi di tipo Memo, che, non avendo una dimensione definita, quando vengono modificati finiscono per "frammentarsi", come succede al disco fisso del PC. Infine noterei che l'operazione viene definita in realta' come "compatta e ripara", quindi dovrebbe cercare di rendere consistenti i dati che per qualche motivo risultano errati. Per le ragioni scritte sopra, e' evidente che la compattazione e' tanto piu' utile quanto piu' spesso viene modificato (con aggiunte e cancellazioni) il db, ma che puo' avere conseguenze pericolose (con perdita di dati) se riscontra degli errori (se non sa come correggere, temo che cancelli la fonte del problema). E' quindi un'operazione indispensabile (ho visto guadagnare anche il 50% di spazio), che va pero' eseguita con la massima cautela. Ciao
--------------- development@aspnuke.it
|
|
1
2
>>
|