मैं एक साथ काम किया कभी नहीं किया है माइक्रोसॉफ्ट एक्सेस डेटाबेस लेकिन मैं नियमित रूप से डीबी 2 (आईबीएम एएस/400 के) पर और लिनक्स (उबंटू) सर्वर से एमएस एसक्यूएल सर्वर से कनेक्ट करता हूं। आपकी त्रुटि यह इंगित करती है कि आपके पास एक एमएस एक्सेस ड्राइवर स्थापित नहीं है - केवल एक मुझे पता है: http://www.easysoft.com/products/data_access/odbc-access-driver/index.html
आपका त्रुटि संदेश यह भी कहता है कि "डेटा स्रोत नाम नहीं मिला" - मेरे लिए डीबी 2 या एमएसएसक्यूएल से कनेक्ट करें मुझे कुछ जानकारी /etc/odbc.ini और /etc/odbcinst.ini में जोड़नी है।
/etc/odbcinst.ini - यह वह जगह है जहां आप वर्णन करते हैं कि ओडीबीसी के लिए ड्राइवर कहां खोजें।
[iseries]
Description = iSeries Access for Linux ODBC Driver
Driver = /usr/lib/libcwbodbc.so
Setup = /usr/lib/libcwbodbcs.so
NOTE1 = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's,
NOTE2 = the following Driver64/Setup64 keywords will provide that support.
Driver64 = /usr/lib/lib64/libcwbodbc.so
Setup64 = /usr/lib/lib64/libcwbodbcs.so
Threading = 2
DontDLClose = 1
UsageCount = 1
# Define where to find the driver for the Free TDS connections.
[freetds]
Description = MS SQL database access with Free TDS
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
UsageCount = 1
[ODBC]
Trace = no
TraceFile = /tmp/odbc.log
कि पिछले अनुभाग ([ODBC]) मैं वर्तमान में ट्रेस है में नहीं = - अगर आप को बदलने कि ट्रेस करने के लिए = हाँ आप कुछ उपयोगी डिबगिंग जानकारी मिल जाएगा: यहाँ मैं डीबी 2 और MSSQL के लिए क्या उपयोग का एक उदाहरण है /tmp/odbc.log फ़ाइल में।
/etc/odbc.ini - यह वह जगह है जहां आप अपने डेटा स्रोतों को परिभाषित करते हैं। यहाँ मैं डीबी 2 और MSSQL के लिए क्या उपयोग का एक उदाहरण है:
[primary]
Description = primary
Driver = iseries
System = XXX.XXX.XXX.XXX
UserID = XXXXXXXXXX
Password = XXXXXXXXXX
Naming = 0
DefaultLibraries = QGPL
Database = MYLIB
ConnectionType = 0
CommitMode = 2
ExtendedDynamic = 0
DefaultPkgLibrary = QGPL
DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression = 1
LibraryView = 0
AllowUnsupportedChar = 0
ForceTranslation = 0
Trace = 0
# Define a connection to the MSSQL server.
# The Description can be whatever we want it to be.
# The Driver value must match what we have defined in /etc/odbcinst.ini
# The Database name must be the name of the database this connection will connect to.
# The ServerName is the name we defined in /etc/freetds/freetds.conf
# The TDS_Version should match what we defined in /etc/freetds/freetds.conf
[mssql]
Description = MSSQL Server
Driver = freetds
Database = MyDatabase
ServerName = mssql
TDS_Version = 8.0
मैं StackOverflow पर यहाँ कई सवाल देखा है एक Linux मशीन से MSFT एक्सेस डेटाबेस का उपयोग कर के बारे में बात - और वहाँ कभी नहीं लगता है सुखद अंत। यदि कोई तरीका है तो आप डेटा को एक अलग, बेहतर समर्थित, डेटाबेस सिस्टम (जैसे MySQL) पर पोर्ट कर सकते हैं, मुझे लगता है कि आप स्वयं को कुछ सिरदर्द बचाएंगे। सौभाग्य!
स्रोत
2012-11-20 14:49:40
किसी और को परेशानी हो रही ऊपर वाक्य रचना को जोड़ने नवीनतम संस्करण पर काम नहीं करता बजाय '$ फ़ाइल नाम =" /path/to/database.mdb "का उपयोग करें;' ' $ पीडीओ = नए पीडीओ ("odbc: DRIVER = {Easysoft ODBC-ACCESS}; MDBFILE = {$ filename};"); ' ध्यान दें कि ड्राइवर और एमडीबीएफएलई दोनों ब्लॉक कैप्स हैं, और डीबीक्यू अब एमडीबीएफएलई – Kev
हाय है, वास्तव में, यह Easysoft के साथ काम करता है ओडीबीसी-एक्सेस ड्राइवर। लेकिन यह मुफ्त और काफी महंगा नहीं है। क्या आप एमडीबी टूल्स (एसक्यूएल सपोर्ट बहुत सीमित) के अलावा लिनक्स के लिए ओडीबीसी एक्सेस ड्राइवर जानते हैं? – Franck
वाणिज्यिक ओडीबीसी-एक्सेस ड्राइवरों के लिए एक अच्छा विकल्प मिला: mdb-SQLite https://code.google.com/p/mdb-sqlite/ – Franck