Nello script #58 e #196 sono presenti delle tecniche per compattare - liberando in questo modo spazio inutilizzato - un database in formato Access.
E' possibile utilizzare questa tecnica anche con la tecnologia .NET.
Inizialmente sarà esposto un esempio in VB.NET, linguaggio che, a differenza del C#, permette l'esecuzione late-binding:
<SCRIPT runat="server" language="vb"> sub Page_Load() dim db as string="db1.mdb" ' db1.mdb è il database da compattare Dim database, database2 As String database = Request.MapPath(db) database2 = Request.MapPath("db2.mdb") ' db2 è il database compattato Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & database Dim strConnTo As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & database2 Dim objJro As Object = Server.CreateObject("jro.JetEngine") objJro.CompactDatabase(strConn,strConnTo) objJro = Nothing end sub </SCRIPT>
Se si osserva questo codice si noterà che non differenzia da quello per Classi ASP grazie alla possibilità di VB.NET di richiamare funzioni in late-binding.
In C# - o attivando "strict on" in VB.NET - tale codice non sarà più utilizzabile e dovremo usare altre strade.
Se utilizziamo VS.NET possiamo risolvere il tutto con pochi click del mouse. Nel solution Explorer selezione References, quindi "Add References", selezioniamo il tab COM e poi "Microsoft Jet and Replication Ojects 2.x Library" per generare il wrapper di questa classe.
Ora sarà possibile utilizzare quell'oggetto COM, con la funzione "CompactDatabase", all'interno delle pagine C#:
<SCRIPT runat="server" language="c#"> void Page_Load() { string db="db1.mdb"; // db1.mdb è il database da compattare string database, database2 database = Request.MapPath(db1); database2 = Request.MapPath("db2.mdb"); JRO.JetEngineClass jro = new JRO.JetEngineClass(); jro.CompactDatabase(database,database2); } </SCRIPT>
In alternativa a Visual Studio .NET, possiamo utilizzare il comando tlbimp.exe dalla console per creare il wrapper.
Prossimamente vedremo come fare lo stesso sfruttando la reflection.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.