Hallo,
ich erzeuge in meiner .Net4.0 Anwendung (x86) mit Interop.ADOX.dll, v4.0.30319 eine Access-Datenbank.
Jetzt musste die Anwendung auf x64 umgestellt werden.
Die Interop.ADOX.dll existiert nicht nicht in einer 64-bit Variante.
Was gibt es denn noch für Möglichkeiten mit einer x64 Anwendung eine Acess-DB zu erzeugen?
Danke!
Marcus
Wie man eine Access DB genau erstellen kann per .Net kann ich leider auch nicht sagen.
Aber brauchst du umbedingt eine Access DB?
Wenn öglich sollte man von Access als DB die Finger lassen.
Alternativ schau dir SQLite mit dem .Net Wrapper an.
Damit bist du sicher, wenn du eine kleine lokale DB brauchst ohne einen dicken SQL Server 😉
Link:
https://www.sqlite.org/
https://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Dann musst du dir, abhängig davon welche Access Version du benötigst, die entsprechende Access Engine für x64 installieren und mal schauen ob du mit ODBC oder besser noch mit ADO .Net mehr Glück hast.
Leider hab ich bisher nur mit ODBC und Access gearbeitet aber immer nur auf eine vorhandene DB zugegriffen.
Müsstest ggf. mal im Forum und auf Google suchen.
Theoretisch müsste es das Problem schon gegeben haben 😃
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Hallo,
es gibt für die "klassische" JET-Engine mit den alten Treibern (und mit den klassischen MDB-Dateien von Access) keine Möglichkeit, diese unter 64 Bit zum laufen zu bekommen. (gibts auch einige Microsoft-Infos dazu How to get a x64 version of Jet?).
Die einzige Möglichkeit ist entweder, die Anwendung als 32 Bit zu kompilieren, dann gehen auch die JET-Geschichte wieder. Alternative, wenns 64 Bit sein muss, musst du auf den ACE-Treiber von Microsoft umstellen, der zusätzlich installiert werden muss. Der soll das auch können, mehrere Firmen machen das auch über die ACE-Treiber, um die Kompatibilität zu gewährleisten (Verwendung von 64-Bit-Applikationen mit Microsoft Access-Datenbankdateien).
Da wird aber ADOX auch nicht funktionieren, da es hier keine 64 Bit Version von gibt - hier muss alles auf ACE umgestellt werden.
Gibt einiges dazu auf Stackoverflow:
If you deploy your application on a 64 bit machine your code couldn't use ADOX via JET.OleDB.4.0
If this is the case, then, a fast solution could be to change your target architecture to x86.Otherwise you could try to download and install on the target machine the 64bit version of Microsoft Access Database Engine drivers, but I don't know if they support ADOX. You will also need to change your connection string
Daniel
Wenn du SO zitierst, so kann auch das [[nop][/nop]quote3]-Tag verwendet werden.
Siehe dazu auch BBCode
Hallo,
ich denke, hier verwechselt jemand was. Die Access-Datenbank (wenn man es überhaupt Datenbank nennen kann) ist nicht gleich die JET-DB, welche ohne Accessinstallation über ADO erzeugt werden kann. Und somit erübrigt sich die Frage nach der Lösung des Problems 😉
**:::
exisitieren OpenSource Alternativen mit denen man accdb-Dateien ohne existierende Accessinstallation erstellen kann?
Sind hier irgendwelche bekannt?
Danke
Das AccessDB-Format ist nicht public; einen alternativen Client zu findender funktioniert und alle Funktionen unterstützt, das halte ich für unwahrscheinlich.
Dahingehend sei auch gesagt, dass AccessDB modernen Ansprüchen von Software gar nicht mehr gerecht wird und absolut nicht verwendet werden sollte.
Es gibt viel bessere Alternativen ohne Dependencies und mit mehr Leistung.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code