Russian Qt Forum

Qt => Базы данных => Тема начата: hadey от Май 17, 2012, 10:25



Название: QODBC под linux
Отправлено: hadey от Май 17, 2012, 10:25
Привет всем.
Скомпилял дрова для ODBC. В списке дров он отображается. Но при коннекте ошибка: "[unixODBC][Driver Manager]Data source name not found, and no default driver specified QODBC3: Unable to connect".
Коннекчусь так:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setUserName("user");
db.setPassword("password");
db.setDatabaseName("Driver={SQL Server};Server=server;Database=db_name;");


Название: Re: QODBC под linux
Отправлено: trot от Май 17, 2012, 10:36
Если по аналогии с Windows сравнивать, то еще необходимо выполнить настройку DSN (driver source name) в системном ODBC, там где "Панель управление->Администрирование->Источники данных (ODBC)". Может что-то такое есть и в linux.


Название: Re: QODBC под linux
Отправлено: Пантер от Май 17, 2012, 10:41
Неверная строка коннекта. Тебе сюда http://connectionstrings.com/.


Название: Re: QODBC под linux
Отправлено: hadey от Май 17, 2012, 10:47
Эта же прога под виндой работает, строка коннекта таже.


Название: Re: QODBC под linux
Отправлено: Пантер от Май 17, 2012, 10:52
Значит либо драйвер не установлен, либо настроить нужно одбц.


Название: Re: QODBC под linux
Отправлено: DmitryM от Май 17, 2012, 12:23
Нужно в odbc создать какой-нибудь источник данных например myBase, и подключаться как-нибудь так:
Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("localhost");
db.setDatabaseName("myBase");
//...


Название: Re: QODBC под linux
Отправлено: hadey от Май 17, 2012, 12:50
сделал следующее:
в файл /etc/odbcinst.ini записал :
[QT]
Description    = Qt ODBC driver
Driver        = /home/user/Qt/qt-everywhere-opensource-src-4.8.1/plugins/sqldrivers/libqsqlodbc.so
Threading       = 1
FileUsage       = 1
CPTimeout       =
CPReuse

в файл /etc/odbc.ini :
[SQLOnLine]
Description    = QT
Driver       = QT
Dbname          = "SERVER=сервер;DATABASE=имя_БД;"
User            = пароль
Password        = логин

Теперь ошибка "[unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed QODBC3: Unable to connect"


Название: Re: QODBC под linux
Отправлено: DmitryM от Май 17, 2012, 13:10
сделал следующее:
в файл /etc/odbcinst.ini записал :
[QT]
Description    = Qt ODBC driver
Driver        = /home/user/Qt/qt-everywhere-opensource-src-4.8.1/plugins/sqldrivers/libqsqlodbc.so
Threading       = 1
FileUsage       = 1
CPTimeout       =
CPReuse

в файл /etc/odbc.ini :
[SQLOnLine]
Description    = QT
Driver       = QT
Dbname          = "SERVER=сервер;DATABASE=имя_БД;"
User            = пароль
Password        = логин

Теперь ошибка "[unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed QODBC3: Unable to connect"
Это что за ересь?
Читай http://www.unixodbc.org/doc/UserManual/ (http://www.unixodbc.org/doc/UserManual/)


Название: Re: QODBC под linux
Отправлено: hadey от Июнь 06, 2012, 10:24
Решение нашел по ссылке http://blog.marcingil.com/2009/11/linux-odbc-to-mssql/
Вдруг кому будет полезной.


Название: Re: QODBC под linux
Отправлено: Павелъ от Февраль 04, 2018, 11:22
Решение нашел по ссылке http://blog.marcingil.com/2009/11/linux-odbc-to-mssql/
Вдруг кому будет полезной.

Добрый день.

Ссылка к сожалению не работает. Вы не подскажите, как подключиться к MSSQL базе из под Linux?


Название: Re: QODBC под linux
Отправлено: ax от Февраль 08, 2018, 19:47
Исправленная ссылка на статью с решением - http://blog.marcingil.com/linux-odbc-to-mssql/ (http://blog.marcingil.com/linux-odbc-to-mssql/)