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.
Approfondimenti
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Gli oggetti CallOut di Expression Blend 4.0
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Sfruttare una CDN con i bundle di ASP.NET
- Le DirectInk API nella Universal Windows Platform
- Inserire le news di Punto Informatico nel proprio sito


