2012-12-10 18 views
20

मुझे 32 बिट .net 2.0 ऐप मिला है जो जेट ओएलडीडीबी 4.0 का उपयोग करता है।विंडोज 8, 64 बिट के लिए Microsoft.Jet.OLEDB.4.0 कहां डाउनलोड/स्थापित कर सकता हूं?

यह विंडोज 8 32 बिट पर फिन चलाता है, लेकिन 64 बिट पर नहीं।

'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine. at System.Data.OleDb.OleDbServicesWrapper.GetDataSource(OleDbConnectionString constr, DataSourceWrapper& datasrcWrapper)

मुझे पता है कि आप एक बिट EXE के साथ कि डेटाबेस (चालक) का उपयोग नहीं कर सकते हैं कर रहा हूँ: 64 बिट पर मैं एक त्रुटि हो रही है। हालांकि मैंने इसके बारे में कुछ भी नहीं पढ़ा है बिट exe के साथ काम नहीं कर रहा है।

मैं क्या करने की कोशिश की:

  1. Installed the MS Access Database Engine 2010 32 bit (and restarted)
  2. सत्यापित है कि Msjet40.dll में है "C: \ Windows \ SysWOW64 \ Msjet40.dll" निर्देशिका और RegSvr32 के साथ पंजीकृत।

तो मुझे लगता है (आशा) है कि अगर मैं डेटाबेस समर्थन स्थापित कर सकते हैं यह सिर्फ काम करेंगे।

समस्या यह है कि, मुझे इसे डाउनलोड करने के लिए कोई जगह नहीं मिल रही है।

+0

उपलब्ध नहीं है। अपने EXE प्रोजेक्ट की प्लेटफ़ॉर्म लक्ष्य सेटिंग को x86 में बदलें ताकि 32-बिट संस्करण काम करेगा। –

+0

@ हंस, मेरा .net ऐप पहले ही 32 बिट ऐप के रूप में संकलित है (पुष्टि की गई बी/सी यह विंडोज के 32 बिट संस्करण पर चलती है)। क्या यह x86 को लक्षित करने से अलग है? –

+0

वीएस2005 और वीएस -2008 पर .NET 2 ऐप्स के लिए डिफ़ॉल्ट लक्ष्य AnyCPU है। जो इसे विंडोज़ के 64-बिट संस्करण पर 64-बिट प्रक्रिया के रूप में चलाएगा। तो कुछ भी न मानें और अपनी प्लेटफार्म लक्ष्य सेटिंग की जांच करें, x86 आवश्यक है। –

उत्तर

19

आधुनिक विंडोज़ पर यह ड्राइवर अब डिफ़ॉल्ट रूप से उपलब्ध नहीं है, लेकिन आप एमएस साइट पर Microsoft Access Database Engine 2010 Redistributable के रूप में डाउनलोड कर सकते हैं। यदि आपका ऐप 32 बिट्स 32 बिट्स संस्करण को डाउनलोड और इंस्टॉल करना सुनिश्चित करता है क्योंकि मेरे ज्ञान के लिए 32 और 64 बिट संस्करण एक साथ नहीं हो सकता है।

इस पर निर्भर करता है कि आपका ऐप अपने डीबी ड्राइवर को कैसे ढूंढता है, यह सब कुछ आवश्यक हो सकता है। हालांकि, यदि आप एक यूडीएल फ़ाइल का उपयोग करते हैं तो एक अतिरिक्त कदम है - आपको उस फ़ाइल को संपादित करने की आवश्यकता है। दुर्भाग्यवश, 64 बिट्स मशीन पर यूडीएल फाइलों को संपादित करने के लिए इस्तेमाल किया जाने वाला विज़ार्ड डिफ़ॉल्ट रूप से 64 बिट्स है, यह जेट ड्राइवर को नहीं देखेगा और यूडीएल फ़ाइल में जो भी ड्राइवर इसे पहले पाता है उसे थप्पड़ मार देगा। इस समस्या को हल करने के 2 तरीके हैं:

  1. इस तरह 32 बिट्स यूडीएल विज़ार्ड शुरू करें: C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\path\to\your.udl। ध्यान दें कि मैं Win7 64 प्रो पर इस तकनीक का उपयोग कर सकता हूं, लेकिन यह सर्वर 2008R2 पर काम नहीं करता है (मेरी गलती हो सकती है, बस उल्लेख कर सकती है)
  2. नोटपैड या अन्य टेक्स्ट एडिटर में यूडीएल फ़ाइल खोलें, इसे अधिक या कम इस प्रारूप है:

[oledb] ; Everything after this line is an OLE DB initstring Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Path\To\The\database.mdb;Persist Security Info=False

कि अपने अनुप्रयोग सही ढंग से शुरू करने के लिए अनुमति चाहिए।

+0

मेरे पास एक .udl फ़ाइल नहीं है। मैं एक खाली .udl फ़ाइल बनाने के लिए कैसे देखते हैं। क्या मैं ऐप निर्देशिका में इसे बना सकता हूं?क्या मैं .dll देता हूं? HOW ऐप या जेट ओएलडीडीबी को इसके लिए "देखने" के बारे में पता है? –

+0

@ClayNichols सभी एप्लिकेशन एक यूडीएल फ़ाइल का उपयोग नहीं करते हैं, यह केवल संकेत की एक अतिरिक्त परत है जो अनुप्रयोगों की कॉन्फ़िगरेशन में अधिक लचीलापन की अनुमति देता है। हो सकता है कि आपके एप्लिकेशन को एक की आवश्यकता नहीं है, डेटाबेस फ़ाइल का पथ ऐप के अंदर संग्रहीत किया जा सकता है, या ऐप द्वारा किसी अन्य तरीके से कॉन्फ़िगर किया जा सकता है। क्या आपने उस समय ड्राइवर को स्थापित किया था जिसका मैंने उल्लेख किया था? क्योंकि, एक बार जब आप ऐसा कर लेते हैं तो त्रुटि या तो दूर होनी चाहिए, या बदलना चाहिए, उदाहरण के लिए यह संकेत देना कि यह mdb फ़ाइल का पता नहीं लगा सकता है। – fvu

+0

हां, मैंने उस ड्राइवर को स्थापित किया है। ओह, क्षमा करें, हाँ, मैं पहले से ही कोशिश कर चुका था (उस पर ध्यान देना भूल गया)। 32 बिट संस्करण (और फिर इसे अनइंस्टॉल किया गया) और फिर 64 बिट संस्करण दोनों का प्रयास किया। दोनों बार एक ही त्रुटि। मुझे लगता है कि 32 बिट ऐप को 32 बिट संस्करण की आवश्यकता है, है ना? –

1

विजुअल स्टूडियो में अपनी परियोजना पर x86 को लक्षित करना सुनिश्चित करें। यह आपकी परेशानी को ठीक करना चाहिए।