MS ACCESS konkurrens adatbázis hozzáférés 64-en nem fut

MS ACCESS konkurrens adatbázis hozzáférés 64-en nem fut
2021-12-31T12:43:32+01:00
2022-01-04T09:47:54+01:00
2022-12-06T23:35:35+01:00
Zeusz1967
Sziasztok!



MS ACCESS (.mdb) adatbázishoz kell hozzáfejlesztenem C# alatt, miközben az access-ben írt lekérdezéseket, karbantartásokat is használják a userek. (Hogy ez jó vagy nem jó, korszerű, vagy nem korszerű, azt ne feszegessük, ez adott környezeti paraméter.)

Ezzel az égvilágon semmi baj nem volt, amíg át nem tértünk 64 bites Office-re és a hozzáfejlesztéssel is átálltunk 64 bitre (vagyis az ACE.OLEDB.12.0 driveren kezdtünk a tesztként telepített programmal kapcsolódni).

Azt a jelenséget vettem észre, hogy ha csak az ACCESSben többen dolgoznak (akár ugyanazon a táblán) vagy csak a hozzáfejlesztett rendszerben többen dolgoznak, akkor semmi baj nincs a több felhasználó egyidejű adatbázis hozzáférésével .... azonban abban a pillanatban, ahogy megnyitjuk az ACCESS adatbázist, a hozzáfejlesztett program onnantól nem tud kapcsolódni az adatbázishoz.

Ha a korábbi, 32 bites verzióját használom a programomnak (vagyis ha a JET 4.0 driveren keresztül kapcsolódom), akkor továbbra is minden rendben van.

Gyanítom, hogy valamilyen beállítási zűr lehet a dolog mögött, de nem tudok rájönni, hogy mi lehet.



Köszönöm előre is az ötleteket.
Mutasd a teljes hozzászólást!
Nincs tapasztalatom a problémával, nagyon régen foglakoztam Access adatbázisokkal, csak ötletelek:

1. Ha létrehozok egy UDL fájlt az OLE DB kapcsolat tesztelésére, lásd:

Test a Connection via a UDL File · microsoft/CSS_SQL_Networking_Tools Wiki

és a Provider fülön a Microsoft.ACE.OLEDB.12.0-t választom ki, akkor a "Advanced" meg "All" fülön vannak "Jet OLEDB:" property-k, amiket hangolni lehet. 

De nem nagyon van dokumentálva, hogy milyen értékek adhatóak meg. Ezeket találtam:

Microsoft OLE DB Provider for Microsoft Jet Overview

What are the possible MODE for Provider=Microsoft.ACE.OLEDB.12.0

2. Ezen kívül megpróbálnám trace-elni az OLE DB hívásokat, és összehasonlítani a trace fájlokat.

Diagnosing ADO.NET with ETW traces

Tracing Data Access
Mutasd a teljes hozzászólást!
Csatolt állomány

  • Köszönöm szépen a segítséget!



    Segített egyet hátralépni és távolabbról szemlélni a megoldandó problémát, új gondolatmenetet indított el a válaszod ......

    Az adatbázis a szerveren van, az access alkalmazások és a hozzá fejlesztett szoftver pedig távoli asztalon futnak.

    Ha a szoftverrel helyi gépről csatlakoztam, akkor nem volt gond. Látszólag a problémát az okozza, hogy ha az ACCESS használja a vele feltelepített drivert, akkor nem engedi a hozzáférést a driverhez külső alkalmazásoknak.



    A megoldás - látszólag - az lett, hogy fel lett telepítve az access 2013 futtató környezet ... ennek verziószáma 15 .... a szerveren lévő officé pedig 16, tehát kisebb kezdeti anomáliák után úgy tűnik szépen megférnek egymás mellett. Így a programnál a connection stringben be lehetett állítani: connectionString=".... Provider=Microsoft.ACE.OLEDB.15.0;Data Source= .... "



    Még persze tesztelődnie kell, de eddig úgy tűnik, ez műxik.



    Köszönöm még egyszer a segítséget.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd