Имеем CentOS 6.4 x64. Установлен сервер 1С 8.3 и PostgreSQL 9.1. Развернута копия рабочей базы, в домен не вводил для авторизации из AD. Необходимо настроить обмен в внешней транзитной базой на MS SQL 2008. Установил unixODBC-2.2.14 и freetds-0.91.
Файл /etc/freetds.conf:
[MSSQL]
host = xxx.xxx.xxx.xxx
port = 1433
client charset = UTF-8
tds version = 8.0
Проверил, все коннектится:
# tsql -S MSSQL -U sa -P password
locale charset is "UTF-8"
using default charset "UTF-8"
1>Запросы выполняются, все ОК.
Идем дальше. Файл /etc/odbcinst.ini:
[FreeTDS]
Description = MS SQL Driver
Driver = /usr/lib64/libtdsodbc.so.0
Setup = /usr/lib64/libtdsS.so
FileUsage = 1Файл /etc/odbc.ini
[DSN]
Driver = FreeTDS
Description = MS SQL connector
Servername = MSSQL
Database = DBnameРегистрирую драйвер и источник:
# odbcinst -i -d -f /etc/odbcinst.ini
# odbcinst -i -s -l -f /etc/odbc.iniПроверяю, все подключается, и запросы выполняет:
# isql -v DSN sa password
+------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+------------------------------+
SQL>Пока все пучком. Но теперь самое интересное. Из-под пользователя usr1cv8, под которым крутится сервис srv1cv8 тоже все прекрасно подключается, но когда я пытаюсь настроить "Внешние источники" через конфигуратор, выбирая из списка драйверов FreeTDS, получаю ошибку: "Ошибка получения параметров строки соединения. Возможно, драйвер не позволяет получать параметры строки соединения".
Ладно, в строке параметров пописываю:
DRIVER={FreeTDS};DSN=MSSQL;UID=sa;Password=password;... и получаю ошибку:
Error 0
[unixODBC][FreeTDS][SQL Server]Unable to connect to data source
Error 20013
[unixODBC][FreeTDS][SQL Server]Unknown host machine nameИ все. На этом мысль заканчивается. Точнее, я пробовал регистрировать драйвер и источник из-под usr1cv8, думая, что проблемы с правами, делал алиас isql='sudo isql', все, что связано с odbc сносил и ставил опять - не помогает. Сам я совсем не 1с-ник, потому прошу помощи тут, может кто сталкивался с таким и подскажет, куда копать?
>[оверквотинг удален]
> настроить "Внешние источники" через конфигуратор, выбирая из списка драйверов FreeTDS,
> получаю ошибку: "Ошибка получения параметров строки соединения. Возможно, драйвер не позволяет
> получать параметры строки соединения".
> Ладно, в строке параметров пописываю:
> DRIVER={FreeTDS};DSN=MSSQL;UID=sa;Password=password;
> ... и получаю ошибку:
> Error 0
> [unixODBC][FreeTDS][SQL Server]Unable to connect to data source
> Error 20013
> [unixODBC][FreeTDS][SQL Server]Unknown host machine nameя тут ничего нипонимаю -- но сказать имею следующие
когда вручную прописана "строка параметров" игнорируется [jcn на который необходимо коннектиться, соответственно его нужно прописать дополнительно в "строке параметров"гугол говоhит что тут похоже http://karataev.nm.ru/cache/linuxtomssql.html, но из того что не сделано виджу только
ODBCINI=/etc/odbc.ini
SYSODBCINI=/etc/odbc.ini
> И все. На этом мысль заканчивается. Точнее, я пробовал регистрировать драйвер и
> источник из-под usr1cv8, думая, что проблемы с правами, делал алиас isql='sudo
> isql', все, что связано с odbc сносил и ставил опять -
> не помогает. Сам я совсем не 1с-ник, потому прошу помощи тут,
> может кто сталкивался с таким и подскажет, куда копать?
>>[оверквотинг удален]
> гугол говоhит что тут похоже http://karataev.nm.ru/cache/linuxtomssql.html, но из того
> что не сделано виджу только
> ODBCINI=/etc/odbc.ini
> SYSODBCINI=/etc/odbc.iniСтатью эту читал, не помогает это 8(
>>>[оверквотинг удален]
>> гугол говоhит что тут похоже http://karataev.nm.ru/cache/linuxtomssql.html, но из того
>> что не сделано виджу только
>> ODBCINI=/etc/odbc.ini
>> SYSODBCINI=/etc/odbc.ini
> Статью эту читал, не помогает это 8(а при чём сдесь эта статья? яж выше написал что не хватает хоста в строке подключения
|DRIVER={SQLite ODBC Driver};
|SERVER=192.168.1.10;
|DATABASE=bitrix;
|UID=root;чито нипонятно?
> а при чём сдесь эта статья? яж выше написал что не хватает
> хоста в строке подключения
> |DRIVER={SQLite ODBC Driver};
> |SERVER=192.168.1.10;
> |DATABASE=bitrix;
> |UID=root;
> чито нипонятно?Ты думаешь, что я так не пробовал? Я не стал писать все возможные варианты, которые я использовал в строке параметров. Такие - тоже. И SERVER, и SERVERNAME из freetds.conf. Результат - тот же.
>> а при чём сдесь эта статья? яж выше написал что не хватает
>> хоста в строке подключения
>> |DRIVER={SQLite ODBC Driver};
>> |SERVER=192.168.1.10;
>> |DATABASE=bitrix;
>> |UID=root;
>> чито нипонятно?
> Ты думаешь, что я так не пробовал? Я не стал писать все
> возможные варианты, которые я использовал в строке параметров. Такие - тоже.
> И SERVER, и SERVERNAME из freetds.conf. Результат - тот же.мне то что думать -- у меня 1ц неработает потому что такой необходимости нет, а это
Error 0
[unixODBC][FreeTDS][SQL Server]Unable to connect to data source
Error 20013
[unixODBC][FreeTDS][SQL Server]Unknown host machine name
определённо говорит о том что подключение не работает по причине отсутствия имени/ip хоста в строке подключения
> мне то что думать -- у меня 1ц неработает потому что такой
> необходимости нет, а это
> Error 0
> [unixODBC][FreeTDS][SQL Server]Unable to connect to data source
> Error 20013
> [unixODBC][FreeTDS][SQL Server]Unknown host machine name
> определённо говорит о том что подключение не работает по причине отсутствия имени/ip
> хоста в строке подключения..везучий человек, раз с желтой программой не работаешь ))
После внесения переменных ODBCINI и SYSODBCINI - ошибка вроде как исчезла, но результата ноль. Т.е. к базе не подключается. Прогеры обещали думать. Пока все.
> После внесения переменных ODBCINI и SYSODBCINI - ошибка вроде как исчезла, но
> результата ноль. Т.е. к базе не подключается. Прогеры обещали думать. Пока
> все.Добрый день!
Что-нибудь в итоге удалось сделать дальше? У меня и для 8.2 такая же штука.
А если создать таблицу в источнике вручную и обращаться к ней программно, то ругается "Ошибка SDBL:
Внутренняя ошибка: сбой в функции buildTopLevel"