Отключение трассировки iODBC - PullRequest
2 голосов
/ 12 октября 2011

Я использую iODBC на OS X 10.6.8 против MySQL (mysql-connector-odbc-5.1.8) из программы на C, которую я пишу, но отслеживание всех вызовов библиотеки ODBC, которая должна быть по умолчанию выключен, включен.

Я нашел набор файлов odbc.ini и odbcinst.ini в /etc и в /Library/ODBC/, но ни один из них не содержит "Trace = yes" и добавляю секцию [ODBC] с "Tracing = no" "ни к одному из этих файлов, похоже, ничего не делает. У меня также нет никаких личных .odbc.ini или .odbcinst.ini файлов в рабочем каталоге, ни в моем домашнем каталоге, ни где-либо еще.

Единственный способ отключить трассировку - это вызвать SQLSetConnectAttr() для установки SQL_ATTR_TRACE в SQL_OPT_TRACE_OFF после выделения дескриптора соединения, но на тот момент файл трассировки sql.log уже был создан в рабочий каталог.

Буду признателен за любую помощь по отслеживанию того, где включена трассировка (по умолчанию она отключена), или как отключить ее, чтобы файл журнала никогда не создавался.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2012

Файлы настроек по умолчанию для ODBC в Mac OS X находятся по адресу -

/Library/ODBC/odbc.ini
/Library/ODBC/odbcinst.ini
/Users/*/Library/ODBC/odbc.ini
/Users/*/Library/ODBC/odbcinst.ini

Первые два предназначены для настроек системного уровня и DSN;последние предназначены для уровня пользователя.

Некоторые инсталляторы и библиотеки с ошибками создают файлы по адресу -

/Users/*/.odbc.ini
/Users/*/.odbcinst.ini
/etc[/*]/.odbc.ini
/etc[/*]/.odbcinst.ini
/etc[/*]/odbc.ini
/etc[/*]/odbcinst.ini

Это может привести к проблемам.Эта команда покажет все потенциально проблемные файлы -

sudo find / \( -name '.odbc*.ini' -or -name 'odbc*.ini' \) -ls

Лучше всего -

  1. смешать содержимое существующих файлов, отличных от заданных по умолчанию, с расположениями по умолчанию, иперетащите файлы не по умолчанию
  2. создайте символические ссылки из ошибочного расположения .odbc [inst] .ini в файлы по умолчанию
  3. обновите компоненты iODBC на вашем Mac
  4. наслаждайтесь беспроблемным использованием ODBC

(ObDisclaimer: я работаю в OpenLink Software , который поддерживает и поддерживает проект iODBC , которыйявляется диспетчером драйверов ODBC, выбранным Apple для Mac OS X, который входит в состав Jaguar (10.2.x).)

0 голосов
/ 07 ноября 2011

Я не уверен, почему вы бы использовали odbc вместо стандартного соединителя, но вы попытались установить для параметра TraceFile значение / dev / null в odbc.ini.Это может по крайней мере удалить файл, если вы не можете заставить Trace = OFF работать самостоятельно.

[ODBC]
Trace = OFF
TraceFile = /dev/null

У меня нет моего Mac в офисе, чтобы проверить это, но похоже, что он должен работать.

...