लिनक्स पर odbc.ini और odbcinst.ini फ़ाइलों के अच्छे प्रलेखन की तलाश है


11

मैंने आंशिक जानकारी, पुरानी जानकारी देखी, लेकिन स्थानीय रूप से मेरे पास संक्षिप्त टिप्पणियों के साथ वास्तविक नमूना फ़ाइलों के रूप में अच्छा कुछ भी नहीं है।

मुझे odbc.iniऔर के बीच के सटीक संबंधों को समझने की जरूरत है odbcinst.ini। सतही तौर पर यह बहुत स्पष्ट है - odbc.iniफ़ाइल के शीर्ष पर एक खंड है जैसे:

[ODBC Data Sources]
MYDSN = MyDriverName
...

हालांकि, मुझे यकीन नहीं है कि मैं कर सकता हूं, उदाहरण के लिए, ड्राइवर या डीएसएन अनुभाग में सेटिंग्स हैं।

1) मेरे पास Driver = /path/to/file/.soदोनों फाइलों में एक पंक्ति है और मान कभी-कभी भिन्न होते हैं। क्या यह भी समझ में आता है? यदि हां, जो प्रबल है?

2) क्या odbcinst.iniएक जावास्क्रिप्ट की तरह "प्रोटोटाइप" है odbc.ini? दूसरे शब्दों में, अगर मैं सामान्य सेटिंग्स के साथ DSNs के एक नंबर बनाने हूँ, मैं आम सेटिंग्स से प्रचार कर सकते हैं odbc.iniमें odbcinst.ini?

३) Driverऔर Setupमें क्या अंतर है odbcinst.ini? वे समान मूल्यों वाले लगते हैं। क्या ये सेटिंग्स डेटाबेस-विशिष्ट हैं या वे सार्वभौमिक हैं?



मुझे लगता है कि उपरोक्त लिंक उत्तर देने में मदद करेगा। इसके बारे में सोचें, यदि आप ORACLE डेटा स्रोत के लिए एक odbc.ini फ़ाइल को कॉन्फ़िगर करते हैं, तो सिस्टम कैसे जानता है कि ORACLE क्या है, यह वही है जो odbcinst.ini को परिभाषित करता है। यह "सिस्टम वाइड" के बजाय केवल पथ / सॉफ़्टवेयर के एक विशिष्ट सेट के लिए स्थानीय हो सकता है।
Schrute

जवाबों:


9

मैं -driven वेबसाइट को डेटाबेस से जोड़ने के लिए उपयोग FreeTDSकरता हूं ।DebianphpMS-SQL Server 2005

मैं विन्यास फाइल को दे सकता हूं:

/etc/odbc.ini

उस उदाहरण को संभालता है जिसे हैंडलर (जैसे php) के भीतर संदर्भित किया जाता है जो डेटाबेस से जुड़ता है (नीचे उदाहरण देखें)। कॉन्फ़िगरेशन उस सर्वर को परिभाषित करता है जिसे इसे कनेक्ट करने की आवश्यकता होती है।

[freetds_odbc_connection]
Driver          =       FreeTDS
Description     =       test
Database        =       MyCompanyDb
Server          =       frodo
Readonly        =       Yes
Port            =       1433
Trace           =       No

-

/etc/odbcinst.ini

में Driverअनुभाग के लिए कॉन्फ़िगरेशन जोड़ता है odbc.ini

[FreeTDS]
Description     = TDS connection
Driver          = /usr/lib/odbc/libtdsodbc.so
Setup           = /usr/lib/odbc/libtdsS.so
UsageCount      = 1
FileUsage       = 1
Trace           = Yes
TraceFile       = /tmp/odbcinst_tr

-

show-companies.php

उदाहरण phpकोड मैं प्रदर्शित करने के लिए कैसे सेट और कनेक्शन का उपयोग करें।

  $host="freetds_odbc_connection";
  $user="freetds";
  $password="secretpassword";
  $conn_id = odbc_connect($host, $user ,$password) or die (odbc_errormsg());

  $sql_companies =  "SELECT * from AMGR_Client_Tbl WHERE Record_Type='1'";

  $query_companies = odbc_exec($conn_id, $sql_companies);
  while (odbc_fetch_row($query_companies))
  {
    $client_id     = odbc_result($query_companies, 6);
    $company_name  = odbc_result($query_companies, 9);
  }

आदि आदि..

मुझे यकीन है कि कई अन्य चर हैं जिन्हें सेट किया जा सकता है और उनका उपयोग किया जा सकता है लेकिन यह सबसे सरल स्पष्टीकरण है जो मैं आपके बारे में पूछी गई फाइलों को दे सकता हूं।


4

यदि आप केवल यूनिक्स कार्यान्वयन को देखते हैं, तो आपको कुछ दिलचस्प विचार मिलेंगे कि ODBC कैसे काम करता है। इन कार्यान्वयनों में से कोई भी विंडोज पर संदर्भ कार्यान्वयन के लिए 100% तुलनीय नहीं है, जो ओडीबीसी युक्ति के रखवाले द्वारा उत्पादित है , अर्थात, Microsoft

आमतौर पर यूनिक्स में पाए जाने वाले दो ओडीबीसी ड्राइवर मैनेजर हैं। iODBC , जिसका प्रलेखन इस प्रश्न के लिए प्रासंगिक है , मेरे नियोक्ता द्वारा बनाए रखा और समर्थित है। UnixODBC अन्य है, और अन्य उत्तरों में चर्चा की गई थी। ये एक दूसरे के लिए और विंडोज कार्यान्वयन के बराबर एपीआई के रूप में होते हैं, क्योंकि दोनों मानक के प्लेटफॉर्म-अज्ञेय कार्यान्वयन हैं।

साधारण शब्दों में, odbcinst.iniएक वातावरण में ODBC ड्राइवरों के लिए एक रजिस्ट्री और कॉन्फ़िगरेशन फ़ाइल है, जबकि odbc.iniODBC DSNs (डेटा स्रोत नाम) के लिए एक रजिस्ट्री और कॉन्फ़िगरेशन फ़ाइल है, जो आमतौर पर दूसरे में पंजीकृत ड्राइवरों पर आधारित होती है।

आपके कुछ खास सवाल थे ...

1) मेरे पास Driver = /path/to/file/.soदोनों फाइलों में एक पंक्ति है और मान कभी-कभी भिन्न होते हैं। क्या यह भी समझ में आता है? यदि हां, जो प्रबल है?

Driver = /path/to/file.soआम तौर पर दोनों फाइलों में ही होना चाहिए जब दोनों रास्तों के रूप में व्यक्त कर रहे हैं। इसके odbc.iniबजाय, यह प्रविष्टि हो सकती है Driver = {name of driver}जहां नाम के रूप में अनुक्रमित है odbcinst.ini। सामान्यतया, यदि ऐसी मौजूद है तो odbc.iniपरस्पर विरोधी सेटिंग्स पर सेटिंग्स odbcinst.ini

2) क्या odbcinst.iniएक जावास्क्रिप्ट की तरह "प्रोटोटाइप" है odbc.ini? दूसरे शब्दों में, अगर मैं सामान्य सेटिंग्स के साथ DSNs के एक नंबर बनाने हूँ, मैं आम सेटिंग्स से प्रचार कर सकते हैं odbc.iniमें odbcinst.ini?

नहीं, odbcinst.iniइस तरह से "प्रोटोटाइप" नहीं है। odbcinst.iniसेटिंग्स ड्राइवर के लिए प्रासंगिक हैं , लेकिन उस चालक के आधार पर DSNs के लिए नहीं ।

३) Driverऔर Setupमें क्या अंतर है odbcinst.ini? वे समान मूल्यों वाले लगते हैं। क्या ये सेटिंग्स डेटाबेस-विशिष्ट हैं या वे सार्वभौमिक हैं?

में odbcinst.ini, Driver =ड्राइवर लाइब्रेरी और Setup =सेटअप लाइब्रेरी को संदर्भित करता है । उत्तरार्द्ध पूरी तरह से वैकल्पिक है, और जब यह मौजूद होता है, तो डेटा कनेक्शन के दौरान इसका उपयोग नहीं किया जा सकता है; यह मुख्य रूप से ODBC एडमिनिस्ट्रेटर द्वारा उपयोग के लिए है जब इस तरह के कनेक्शन को "सेट" किया जाता है, ताकि DSNs के रूप में बचाया जा सके। कभी-कभी, ये लाइब्रेरी एक ही भौतिक फ़ाइल में पाई जाती हैं, लेकिन उन्हें आमतौर पर OS X वातावरण में नहीं होना चाहिए।


1

गूगल पर पहली हिट होने वाली यूनिक्सबक साइट से odbcinst.ini और odbc.ini के बीच ठीक सरल अंतर :

सिस्टम फ़ाइल odbcinst.ini में सभी उपयोगकर्ताओं के लिए उपलब्ध ODBC ड्राइवरों के बारे में जानकारी है, और odbc.ini फ़ाइल में DSN के बारे में सभी उपयोगकर्ताओं के लिए उपलब्ध जानकारी है। ये "सिस्टम डीएसएन" "वेब सर्वर जैसे एप्लिकेशन के लिए उपयोगी हैं जो एक वास्तविक उपयोगकर्ता के रूप में नहीं चल सकता है और इसलिए एक .odbc.ini फ़ाइल को सम्‍मिलित करने के लिए एक होम डायरेक्टरी नहीं होगी।


धन्यवाद। मैं यह उल्लेख करना भूल गया कि मैं वाक्य रचना से बहुत कुछ जानता हूं - वास्तव में प्रत्येक DSN को {DSN} = {चालक} वाक्य रचना के साथ odbc.ini के शीर्ष पर एक ड्राइवर को निर्दिष्ट करना होगा लेकिन मैं अभी भी बहुत भ्रमित हूं।
लियोनिद

0

मैनुअल होने के लिए लगता है कि कर रहे हैं यहाँ (क्लिक करें Manualsतो User Manual)। लेकिन दुर्भाग्य से लिंक Administrator Manualऔर Programmer Manualटूट गए हैं। (मैंने यह रिपोर्ट की है और कहा गया था कि वे ठीक हो जाएंगे।)

तो अब के लिए...

अनुपस्थित मैनुअल http://www.ixixodbc.org/ से unixODBC-2.3.4.tar.gz डाउनलोड करके पाए जाते हैं और फिर इसे आर्काइव मैनेजर (या लाइक) के साथ खोलें और इन तीन मैनुअलों को देखें:

/doc/AdministratorManual/index.html
/doc/ProgrammerManual/index.html
/doc/ProgrammerManual/Tutorial/index.html
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.