Compattare un DB access

mercoledì 31 ottobre 2007 - 12.45

donatokolas Profilo | Junior Member

Salve a tutti!
Ho un problema :
quando tento di compattare il mio database access da codice c# (lo faccio per riazzerare i campi contatori di alcune tabelle dopo l'eliminazione di alcune righe) utilizzo la seguente funzione che ho copiato dalla rete :

private static void CompactAccessDataBase(String sourceFileName, String destFileName)
{
// Definizione delle stringhe di connessione per db origine e destinazione
String sourceConnection =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\" +
sourceFileName + ";";
String destConnection =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\" +
destFileName + ";";

// creazione dell'oggetto (Microsoft Jet and Replication Object)
JRO.JetEngine je = new JRO.JetEngine();

try
{
je.CompactDatabase(sourceConnection, destConnection);
}
finally
{
je = null;
}
Ma il problema è che io non voglio creare un altro Db voglio usare sempre quello ma compattato.
Se io chiamo questa funzione utilizzando come parametri due stringhe uguali (per fare in modo che il database di destinazione sia sempre lo stesso) a compile time ho l'errore che il database esiste gia.

Non c'è un altro modo di ottenere la compattazione del database?
Grazie in anticipo a quanti farà piacere rispondermi.

totti240282 Profilo | Guru

Quelal che usi è la compattazione del db,che poi è quella che fa access (credo) ma tu non vedi che crea una copia temporanea.
C'è solo un capitano !!!!!!

zaffiro Profilo | Newbie

Sarà banale, ma non puoi cancellare il "vecchio" database e rinominare il "nuovo" con il nome del primo?
Ciao
zaffiro
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5