Hallo zusammen,
ich versuche über c# meine .mdb Datanbank zu komprimieren. Einige Codes habe ich gefunden aber funktionieren will das ganze leider nicht.
private void test()
{
string varDBString_Source = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\\Users\t\\database.mdb";
string varDBString_Dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= C:\\Users\\t\\databaseneu.mdb";
JRO.JetEngine varDB = new JRO.JetEngine();
varDB.CompactDatabase(varDBString_Source, varDBString_Dest);
MessageBox.Show("Datenbank erfolgreich repariert und komprimiert !");
}
->
"Ein Ausnahmefehler des Typs "System.Runtime.InteropServices.COMException" ist in Auto-Absicherung.exe aufgetreten.
Zusätzliche Informationen: Kein zulässiger Dateiname."
Kann mir jemand sagen, was hier falsch läuft?
Vielen Dank&
Grüße Tobias
Hast du ein Verzeichnis C:\Users<TAB>
?
(Das <TAB>
ist ein Tabulatorzeichen)
ne der Ordner heißt "t" + Zahl für die Konzern-ID
Wollte die jetzt nicht umbedingt hier rein schreiben, auch wenn man damit eigentlich nichts anfangen kann 😉
Da habe ich beim ersten Pfad wohl ein \ mit weggelöscht, beim zweiten sind ja beide \ da
Und die Exception hat sicher keine Message oder InnerException?
Bin mir nicht sicher, ob das Leerzeichen nach der Zuweisung bei Compact legitim ist..
Korrekter (die Schreibweise) wäre trotzdem
string varDBString_Dest = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\t\databaseneu.mdb;";
[FAQ] Was bedeutet das @ (=at) vor String-Literalen? Und: Wissenswertes zu Escape-Sequenzen
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code