Linux'ta odbc.ini ve odbcinst.ini dosyalarının iyi belgelerini mi arıyorsunuz?


11

Kısmi bilgiler, eski bilgiler gördüm, ancak yerel olarak sahip olduğum kısa yorumlarla gerçek örnek dosyalar kadar iyi bir şey görmedim.

Ben arasındaki kesin ilişkiyi anlamamız gerekir odbc.inive odbcinst.ini. Yüzeysel olarak oldukça açıktır - odbc.inidosyanın üstünde aşağıdaki gibi bir bölüm vardır:

[ODBC Data Sources]
MYDSN = MyDriverName
...

Ancak, örneğin sürücüde veya DSN bölümünde ayarlara sahip olup olmadığımdan emin değilim.

1) Her Driver = /path/to/file/.soiki dosyada da bir satır var ve değerler bazen farklı. Bu mantıklı geliyor mu? Eğer öyleyse, hangisi geçerli?

2) odbcinst.iniJavaScript benzeri bir "prototip" odbc.inimi? Ben ortak ayarlarla DSN'lerini bir dizi oluşturma Başka bir deyişle, i? Ortak ayarları tanıtabilir odbc.iniiçine odbcinst.ini?

3) Driverve Setupin arasındaki fark nedir odbcinst.ini? Aynı değerlere sahip gibi görünüyorlar. Bu ayarlar veritabanına özgü mü yoksa evrensel mi?



Yukarıdaki bağlantının cevaplamaya yardımcı olacağını düşünüyorum. Bunu düşünün, eğer ORACLE veri kaynağı için bir odbc.ini dosyasını yapılandırırsanız, sistem ORACLE'ın ne olduğunu nasıl bilir, odbcinst.ini'nin tanımladığı şey budur. Bu, "sistem çapında" yerine belirli bir yol / yazılım kümesi için yerel olabilir.
Schrute

Yanıtlar:


9

Kullandığım FreeTDSüzerinde Debianbir bağlanmaya phpa -Bunlardan web sitesi MS-SQL Server 2005Veritabanı.

Yapılandırma dosyalarına verebileceğim açıklama:

/etc/odbc.ini

phpVeritabanına bağlanan işleyici (örn. ) İçinde atıfta bulunulan örneği tutar (aşağıdaki örneğe bakın). Yapılandırma bağlanması gereken sunucuyu tanımlar.

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

-

/etc/odbcinst.ini

İçindeki Driverbölümün yapılandırmasını tutar 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

phpBağlantıyı nasıl kurduğumu ve kullandığımı gösteren örnek kod.

  $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);
  }

vesaire vesaire..

Eminim ayarlanabilen ve kullanılabilecek birçok değişken var, ancak bu, sorduğunuz dosyaların verebileceği en basit açıklama.


4

Yalnızca Unix uygulamalarına bakarsanız, ODBC'nin nasıl çalıştığı hakkında bazı ilginç fikirler alırsınız. Bu uygulamaların hiçbiri, ODBC spesifikasyonunun, yani Microsoft'un ürettiği Windows tarafından üretilen referans uygulamayla% 100 karşılaştırılabilir değildir .

Unix'te yaygın olarak bulunan iki ODBC sürücü yöneticisi vardır. Bu soruyla ilgili belgeleri burada bulunan iODBC , işverenim tarafından korunmakta ve desteklenmektedir. UnixODBC diğeri ve diğer cevaplarda tartışıldı. Her ikisi de standardın platform agnostik uygulamaları olduğundan, bunların birbirine ve Windows uygulamasına eşdeğer API olması amaçlanmaktadır.

Basit bir ifadeyle, odbcinst.inibir ortamdaki ODBC sürücüleri odbc.iniiçin bir kayıt defteri ve yapılandırma dosyası, genellikle diğerinde kayıtlı sürücüleri temel alan ODBC DSN'leri (Veri Kaynağı Adları) için bir kayıt defteri ve yapılandırma dosyasıdır.

Birkaç özel sorunuz oldu ...

1) Her Driver = /path/to/file/.soiki dosyada da bir satır var ve değerler bazen farklı. Bu mantıklı geliyor mu? Eğer öyleyse, hangisi geçerli?

Her Driver = /path/to/file.soikisi de yol olarak ifade edildiğinde, genellikle her iki dosyada da aynı olmalıdır. İçinde odbc.ini, bu girdi bunun yerine Driver = {name of driver}adın dizine eklendiği yer olabilir odbcinst.ini. Genel olarak konuşursak, varsa ayarlar odbc.iniçakışan ayarlara göre daha odbcinst.inifazladır.

2) odbcinst.iniJavaScript benzeri bir "prototip" odbc.inimi? Ben ortak ayarlarla DSN'lerini bir dizi oluşturma Başka bir deyişle, i? Ortak ayarları tanıtabilir odbc.iniiçine odbcinst.ini?

Hayır, odbcinst.inibu şekilde bir "prototip" değildir. odbcinst.iniayarları sürücü ile ilgilidir , ancak bu sürücüyü temel alan DSN'lerle ilgili değildir .

3) Driverve Setupin arasındaki fark nedir odbcinst.ini? Aynı değerlere sahip gibi görünüyorlar. Bu ayarlar veritabanına özgü mü yoksa evrensel mi?

İçinde odbcinst.ini, Driver =sürücü kitaplığına ve Setup =kurulum kitaplığına başvurur. İkincisi tamamen isteğe bağlıdır ve mevcut olduğunda, veri bağlantısı sırasında kullanılmasına gerek yoktur; öncelikle bu tür bağlantıları "kurarken" bir ODBC Yöneticisi tarafından DSN olarak kaydedilmek üzere tasarlanmıştır. Bazen, bu kütüphaneler aynı fiziksel dosyada bulunur, ancak böyle olmaları gerekmez ve örneğin, genellikle OS X ortamında değildir.


1

Google'da ilk hit olan unixodbc sitesinden odbcinst.ini ve odbc.ini arasındaki basit fark :

Sistem dosyası odbcinst.ini, tüm kullanıcılar tarafından kullanılabilen ODBC sürücüleri hakkında bilgi içerir ve odbc.ini dosyası, tüm kullanıcılar tarafından kullanılabilen DSN'ler hakkında bilgi içerir. Bu "Sistem DSN'leri", gerçek bir kullanıcı olarak çalışmayabilecek ve bu nedenle bir .odbc.ini dosyası içerecek bir giriş dizinine sahip olmayacak web sunucuları gibi uygulamalar için kullanışlıdır.


Teşekkürler. Sözdiziminden çok şey çıkardığımı söylemeyi unuttum - gerçekten de her DSN, odbc.ini'nin en üstündeki bir sürücüyü {DSN} = {Sürücü} sözdizimi ile belirtmelidir, ancak hala çok kafam karıştı.
Leonid

0

Kılavuzların burada olduğu varsayılır ( Manualso zaman tıklayın User Manual). Ama ne yazık ki için linkler Administrator Manualve Programmer Manualkırılırlar. (Bunu bildirdim ve düzeltilecekleri söylendi.)

Şimdilik...

Eksik kılavuzlar, http://www.unixodbc.org/ adresinden unixODBC-2.3.4.tar.gz dosyasını indirerek ve ardından arşiv yöneticisiyle (veya benzerleriyle) açarak ve şu üç kılavuza bakarak bulunur :

/doc/AdministratorManual/index.html
/doc/ProgrammerManual/index.html
/doc/ProgrammerManual/Tutorial/index.html
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.