Поиск хорошей документации файлов odbc.ini и odbcinst.ini на Linux

Я видел частичную информацию, старую информацию, но ничто столь же хорошее как фактические файлы примера с краткими комментариями, что я имею локально.

Я должен понять точные отношения между odbc.ini и odbcinst.ini. Поверхностно это довольно очевидно - наверху odbc.ini файл там является разделом как:

[ODBC Data Sources]
MYDSN = MyDriverName
...

Однако я не уверен, могут ли у меня, например, быть настройки или в драйвере или в разделе DSN.

1) У меня есть строка Driver = /path/to/file/.so в обоих файлах и значениях иногда отличаются. Это даже имеет смысл? Если так, который преобладает?

2) odbcinst.ini подобный JavaScript "прототип" для odbc.ini? Другими словами, если я создаю много DSNs с общими настройками, могу я способствовать общим настройкам от odbc.ini в odbcinst.ini?

3) Между чем различие Driver и Setup в odbcinst.ini? У них, кажется, есть те же значения. Эти настройки являются определенными для базы данных, или действительно ли они универсальны?

11
задан 6 September 2015 в 06:46
4 ответа

Хорошо, простая разница между odbcinst.ini и odbc.ini с сайта unixodbc, который является первым хитом на google:

Системный файл odbcinst.ini содержит информацию о драйверах ODBC доступный для всех пользователей, а файл odbc.ini содержит информацию. о том, что DSN доступен для всех пользователей. Эти "Системные DSN" полезны. для таких приложений, как веб-серверы, которые могут быть запущены не как настоящие пользователя, и поэтому не будет домашнего каталога, содержащего .odbc.ini. файл.

1
ответ дан 2 December 2019 в 21:50

Я использую FreeTDS в Debian для подключения php-двигаемого вебсайта к базе данных MS-SQL Server 2005 Database.

Объяснение, которое я могу дать конфигурационным файлам:

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

и т.д...

Я уверен, что есть много других переменных, которые можно установить и использовать, но это самое простое объяснение файлов, о которых вы спрашивали.

.
9
ответ дан 2 December 2019 в 21:50

Если вы посмотрите только на реализации Unix, вы получите некоторые интересные идеи о том, как работает ODBC. Ни одна из этих реализаций не на 100% сопоставима с эталонной реализацией в Windows, созданной разработчиком спецификации ODBC, то есть Microsoft .

В Unix обычно используются два менеджера драйверов ODBC. iODBC , чья документация, относящаяся к этому вопросу, находится здесь , поддерживается и поддерживается моим работодателем. UnixODBC - другой, который обсуждался в других ответах. Они должны быть API-эквивалентами друг друга и реализации Windows, поскольку обе являются платформо-независимыми реализациями стандарта.

Проще говоря, odbcinst.ini - это файл реестра и конфигурации для Драйверы ODBC в среде, а odbc.ini - это реестр и файл конфигурации для ODBC DSN (имена источников данных), обычно основанные на драйверах, зарегистрированных в другой среде.

У вас возникло несколько конкретных вопросов. ..

1) У меня есть строка Driver = /path/to/file/.so в обоих файлах, и значения иногда отличаются. Имеет ли это вообще смысл? Если да, то что преобладает?

Драйвер = /path/to/file.so обычно должен быть одинаковым в обоих файлах, если оба выражены как пути. В odbc.ini эта запись может быть вместо этого Driver = {имя драйвера} , где имя указано в индексе в odbcinst.ini . Вообще говоря, настройки в odbc.ini преобладают над конфликтующими настройками в odbcinst.ini , если они существуют.

2) Является ли odbcinst.ini JavaScript- как "прототип" для odbc.ini ? Другими словами, если я создаю несколько DSN с общими настройками, могу ли я перенести общие настройки из odbc.ini в odbcinst.ini ?

Нет, odbcinst.ini в этом смысле не является «прототипом». Параметры odbcinst.ini относятся к драйверу , но не к DSN на основе этого драйвера.

3) В чем разница между ] Драйвер и Настройка в odbcinst.ini ? Кажется, у них одинаковые ценности. Эти настройки относятся к конкретной базе данных или они универсальны?

В odbcinst.ini Driver = относится к библиотеке драйверов, а Setup = - к библиотека установки. Последнее является полностью необязательным, и если оно существует, его можно, но не обязательно, использовать во время соединения для передачи данных; в первую очередь он предназначен для использования администратором ODBC при «настройке» таких подключений для сохранения как DSN. Иногда эти библиотеки находятся в одном и том же физическом файле, но это не обязательно, и, например, обычно их нет в среде OS X.

4
ответ дан 2 December 2019 в 21:50

Здесь (нажмите Manuals , затем User Manual ). Но, к сожалению, ссылки на Administrator Manual и Programmer Manual не работают. (Я сообщил об этом и мне сказали, что они будут исправлены.)

Так что пока...

Недостающие руководства можно найти, скачав unixODBC-2.3.4.tar.gz с http://www.unixodbc.org/, а затем открыть его с помощью архивного менеджера (или что-то в этом роде) и посмотреть на эти три руководства:

/doc/AdministratorManual/index.html
/doc/ProgrammerManual/index.html
/doc/ProgrammerManual/Tutorial/index.html
0
ответ дан 2 December 2019 в 21:50

Теги

Похожие вопросы