2010-07-15 13 views
5

यहाँ के pyodbc कनेक्ट करने के लिए कैसे है कि मैं क्या कोशिश की है:एक पहुँच (.mdb) डेटाबेस फ़ाइल

-Find Vista के ODBC डेटा स्रोत खोज के माध्यम से प्रबंधक *,

जोड़ें एक नया फ़ाइल डेटा स्रोत * , माइक्रोसॉफ्ट एक्सेस (* .mdb) के लिए ड्राइवर का चयन करके और ब्याज की मेरी mdb फ़ाइल, अजगर खोल से

आयात pyodbc और चयन करने का प्रयास:

pyodbc.connect("DSN=<that Data Source I just created>") 

मैं निम्न त्रुटि संदेश मिलता है (Portugue se **):

Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Nome da fonte de dados n\xe3o encontrado e nenhum driver padr\xe3o especificado (0) (SQLDriverConnectW)') 

कौन सा रूप में "डेटा स्रोत का नाम नहीं मिला है और कोई मानक चालक निर्दिष्ट" अनुवाद करता है।

मैं क्या गलत कर रहा हूं? इसे कैसे प्राप्त करें? इसके अलावा, मैंने दस्तावेज के लिए वेब की खोज की लेकिन मुझे कुछ भी मूल्य नहीं मिला, क्या कोई भी किसी दस्तावेज़ को अनुशंसा कर सकता है?

* नाम पूरी तरह से सटीक नहीं हो सकते हैं क्योंकि मेरा विंडोज पुर्तगाली में है।

** नहीं, पुर्तगाली '3' और पत्र के रूप में '\' नहीं है, इन misprinted कर रहे हैं विशेष वर्ण

उत्तर

6

DSN = केवल एक प्रणाली या उपयोगकर्ता DSN के लिए प्रयोग किया जाता है।

एक DSN फ़ाइल के लिए, आप FILEDSN उपयोग करने की आवश्यकता = c: \ myDsnFile.dsn

http://www.connectionstrings.com/ अपने सबसे अच्छे दोस्त है।

1

मैं odbc मॉड्यूल (ActiveState अजगर में शामिल है) का उपयोग करें, लेकिन pyodbc परीक्षण किया है और मेरे लिए काम करता है:

#db = odbc.odbc('northwind') 
#db = odbc.odbc('Driver={Microsoft Access Driver (*.mdb)};Dbq=Nwind.mdb;Uid=;Pwd=;') 
#db = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};Dbq=Nwind.mdb;Uid=;Pwd=;') 
db = pyodbc.connect('DSN=northwind') 

बेशक भी टिप्पणी की कनेक्शन काम करता है।

मैं उपयोगकर्ता DSN के रूप में nothwind कॉन्फ़िगर किया गया तो आप शायद उपयोगकर्ता DSN या सिस्टम DSN के रूप में अपने ODBC डेटाबेस कनेक्शन कॉन्फिगर करना होगा, या ODBC व्यवस्थापक में विन्यस्त करने के बिना आप ConnectString उपयोग कर सकते हैं, जहां आप अपनी .mdb फ़ाइल पर इंगित कर सकते हैं।

2

मुझे pyodbc के साथ एक ही समस्या थी हालांकि एक्सेस के साथ नहीं बल्कि एक अलग ओडीबीसी ड्राइवर।

यही मेरी मदद करता है। http://robertoschiabel.wordpress.com/2008/02/28/windows-x64-32bit-odbc-vs-64bit-odbc/ (यहाँ मामले में उचित KB लेख इस URL चली जाती है। http://support.microsoft.com/kb/942976/en-us)

हमारे पिछले सर्वर हार्डवेयर मृत्यु हो गई और हम जल्दी से एक 64 बिट ओएस पर पुनर्वितरित करने के लिए क्योंकि हम सभी के लिए किया था कि उपलब्ध था है कि था। सामान्य ओडीबीसी व्यवस्थापक उपकरण का उपयोग करके मैंने उचित नामित डीएसएन जोड़ा लेकिन यह अभी भी दावा किया गया कि यह नहीं मिला था। केवल ओडीबीसी व्यवस्थापक के विशेष 32-बिट संस्करण को चलाने पर, क्या मैं एक डीएसएन परिभाषित करने में सक्षम था कि मेरी स्क्रिप्ट pyodbc का उपयोग कर पाई जा सकती है।

1

यह देखने के लिए कि आप क्या उपयोग कर रहे हैं, अपने पॉडबैक के साथ अपने ओडीबीसी कनेक्शन सूचीबद्ध करना स्मार्ट है। सुनिश्चित करें कि आप उचित pyodbc 32 बिट पायथन 32 बिट ड्राइवर का उपयोग करें। यदि आप 64 बिट एक्सेस फ़ाइलों का उपयोग करना चाहते हैं तो आपको 64 बिट एमएस Acceess का उपयोग करना चाहिए जो ड्राइवर प्रदान करता है।

sources = pyodbc.dataSources() 
keys = sources.keys() 
for key in keys: 
    print key