none
Provider access 2013 c# 64bit RRS feed

  • Frage

  • Hallo,

    Weiß jemand ob man Microsoft.ACE.OLEDB.12.0 auch bei einem 64bit Betriebssystem verwenden kann? Bei einem 32bit System läuft dieser Perfekt aber bei 64bit macht er irgendwie Probleme...

    Schonmal Danke im vorraus!

    Wolfgang

    Donnerstag, 12. September 2013 17:43

Antworten

  • Hallo Wolfgang,

    wenn ich ganz ehrlich sein soll, würde ich ACE gar nicht verwenden, wenn die Anwendung auf unterschliedlichen, vorher nicht exakt bekannten, Systemen laufen soll und man auch mit den älteren Dateitypen (mdb, xls, ...) arbeiten kann.

    ACE kann nur mit derselben Officevariante nebeneinander existieren. D.h. wenn Office 32 Bit installiert ist (auch auf einem x64 OS), dann kann man auch nur ACE 32 Bit verwenden. Wenn Office 64 Bit, dann ACE 64 Bit. Andere Kombinationen gehen nicht.

    Die Anwendung, die ACE nutzen will, muss je nach installierter Office- und ACE Variante entweder als x64 oder als x86 laufen.

    Aber Ja, man kann ACE auch "problemlos" (siehe vorgenannte Einschränkungen) auf einem x64 OS verwenden und damit arbeiten.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Freitag, 13. September 2013 07:11
    Moderator

Alle Antworten

  • Hi Wolfgang,

    wenn du Ausführlicher beschreibst was du machst und angibst welchen Fehler du bekommst ist es auch einfacher zu helfen.

    So bleibt nur ein Blick in die Glaskugel. ;)

    Wenn die Access DLL eine 32Bit dll ist musst du dein Programm nicht als AnyCPU oder 64Bit Compilieren sondern als x86. Oder du brauchst eine 64Bit DLL von Access.

    Ist in dem Rahmen so das gängigste Problem ;)

    MFG

    Björn

    Donnerstag, 12. September 2013 17:59
  • Ich arbeite seit neustem mit access 2013. Daher muss ich auch mein programm leicht abändern. An einem 32Bit Rechner hat mit dem Microsoft.ACE.OLEDB.12.0 provider alles bestens funktioniert. Aber an einem 64 bit rechner treten einige Fehler auf die am 32bit rechner nicht auftreten. Die Fehlermeldung deutet nicht auf den Provider hin aber es kann eigentlich an nichts anderem liegen.

    Das Problem liegt hier:

    string sql = "INSERT INTO " + Tabellenname + " ("+Spaltenname+") VALUES (" + "'" + EintragHinzufügen.Text + "'" + ")";                     
    OleDbCommand cmd = new OleDbCommand(sql, Verbindung);
    cmd.ExecuteNonQuery();

    oder

    OleDbDataReader dr = new OleDbCommand("SELECT * FROM " + Tabellenname + " WHERE " + Spaltenname + "", Verbindung).ExecuteReader();
                   
    while (dr.Read())
    {    
              AlleEinträge.Items.Add(dr[0].ToString());
    }
    Verbindung.Close();

    hier.

    Wenn ich versuche einen eintrag hinzuzufügen erscheint nichts nur ein weißes Kästchen. Es kann natürlich auch am Auslesen liegen. Aber wie gesagt bei 32bit ging alles.


    • Bearbeitet --Wolle-- Donnerstag, 12. September 2013 18:20
    Donnerstag, 12. September 2013 18:11
  • Hallo Wolfgang,

    ich sehe jetzt nichts was auf einen 32Bit System funktionieren sollte und auf einen 64Bit System nicht.

    Einen Fehler (Fehlermeldung / Exeption) bekommst du also nicht.

    Sondern das Ergebnis sieht nicht so aus wie du möchtest (Vielleicht mal ein Bild Posten).

    Setzt bitte mal einen Brakepoint nach dem einfügen und schau ob der Datensatz in der Datenbank(DB) erzeugt wurde. Wenn nein Poste bitte mal das SQL Statement ohne Variablen sondern was übertragen wird.

    Wenn ja schau zeige mal das SQL Statement zur abfrage.

    Schau dir bitte auch mal den Link an.

    MFG

    Björn

    Donnerstag, 12. September 2013 19:26
  • Hallo Wolfgang,

    wenn ich ganz ehrlich sein soll, würde ich ACE gar nicht verwenden, wenn die Anwendung auf unterschliedlichen, vorher nicht exakt bekannten, Systemen laufen soll und man auch mit den älteren Dateitypen (mdb, xls, ...) arbeiten kann.

    ACE kann nur mit derselben Officevariante nebeneinander existieren. D.h. wenn Office 32 Bit installiert ist (auch auf einem x64 OS), dann kann man auch nur ACE 32 Bit verwenden. Wenn Office 64 Bit, dann ACE 64 Bit. Andere Kombinationen gehen nicht.

    Die Anwendung, die ACE nutzen will, muss je nach installierter Office- und ACE Variante entweder als x64 oder als x86 laufen.

    Aber Ja, man kann ACE auch "problemlos" (siehe vorgenannte Einschränkungen) auf einem x64 OS verwenden und damit arbeiten.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Freitag, 13. September 2013 07:11
    Moderator