невозможно подключить образ докера sqlserver из Qt5 на Ubuntu - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь создать соединение с экземпляром докера SqlServer из проекта Qt5, но я столкнулся с ошибкой:

Failed to open database!
Error:[unixODBC][Driver Manager]Can't open lib 'SQL SERVER' : file not found QODBC3: Unable to connect

Сообщение об ошибке предоставлено QSqlError error = db.lastError().

Образ докера, работающий нормально.

означает, что sqlcmd может работать и сообщать правильную информацию, когда в изображение через docker exec -it qt_sql 'bash', и я могу правильно войти в sql или создать новую базу данных.

И этот код возвращает true:

    db = QSqlDatabase::addDatabase("QODBC");

    qDebug() << "ODBC driver valid?" << db.isValid();

QT: 5.12.3
ОС: Ubuntu 18.04

libs установил:
libqt5sql5-odbc
mssql-tools
msodbcsql17

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

Вот мой код:

bool MSSql::connect(){


    QString dsn = "DRIVER={SQL SERVER};SERVER=0.0.0.0,14333;DATABASE=BookMGT;UID=;PWD=;";

    //I tried: localhost, 0.0.0.0, 127.0.0.1 and docker instance's ip 172.17.0.2
    db.setHostName("0.0.0.0");

    db.setDatabaseName(dsn);   

    db.setUserName("SA");

    db.setPassword("<mypassword>");

    if(!db.open ())

        {

            QSqlError error = db.lastError();

            QMessageBox::warning (0, "Warning", QString("Failed to open database!\nError:%1").arg(error.text()));

    return false;

        }

    return true;

}

Спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...