Назад | Перейти на главную страницу

Ищете хорошую документацию по файлам 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? Другими словами, если я создаю несколько DSN с общими настройками, могу ли я продвигать общие настройки из odbc.ini в odbcinst.ini?

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

я использую FreeTDS на Debian подключить phpвеб-сайт на MS-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);
  }

и т.д .. и т.д ..

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

Если вы посмотрите только на реализации 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 в обоих файлах и значения иногда различаются. Имеет ли это вообще смысл? Если да, то что преобладает?

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

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

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

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

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

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

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

Предполагается, что руководства будут Вот (нажмите 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