Qt, не подключается к базе данных

База данных firebird. Система ubuntu 22.04. qt 5.15.2

void testConn(){
    //qDebug() << "Доступные драйверы:" << QSqlDatabase::drivers();
    QSqlDatabase::removeDatabase("QIBASE");

    QSqlDatabase db = QSqlDatabase::addDatabase("QIBASE");
    db.setHostName("172.18.110.56");
    db.setPort(3050);
    db.setDatabaseName("C:/ACS/Base/ACS.fdb");
    db.setUserName("login");
    db.setPassword("pass");




/*
        db.setHostName("127.0.0.1");
        db.setPort(3050);
        db.setDatabaseName("/home/nikit/testDB/ACSutf.fdb");
        db.setUserName("SYSDBA");
        db.setPassword("masterkey");
*/

    qDebug() << "Host Name:" << db.hostName();
    qDebug() << "Port:" << db.port();
    qDebug() << "Database Name:" << db.databaseName();
    qDebug() << "User Name:" << db.userName();
    int stat = db.open();
    qDebug()<< stat;
    qDebug() << "OH NO: " << db.lastError().text();

Попытка подключения к локальной базе данных извечно выдает ошибку рода

  • нет доступа к /tmp/firebird. Выдача прав через sudo chown :adm /tmp/firebird/fb_init,sudo chown :adm /tmp/firebird/fb50_trace,chmod -R 777работает лишь на один запуск, затем сбрасываются.
  • Исли право на файлы есть, то user name and password are not defined. Ask your database administrator to set up a Firebird login.
  • Если в коде добавлять строки:
db.setHostName("127.0.0.1");
db.setPort(3050);

то он уходит в лютую истерию с ошибкой Invalid connection string - Cannot transliterate character between character sets - Invalid or incomplete multibyte or wide character Error opening database

Попытка подключения к удаленному ресурсу Invalid connection string - Cannot transliterate character between character sets - Invalid or incomplete multibyte or wide character Error opening database

Товарищи, прошу помочь, сил уже нет, chatgpt водит по кругу, на форумах пустота


Ответы (1 шт):

Автор решения: Sergey Tatarintsev

Драйвер руками собирается для винды. В линуксе все проще

sudo apt install libqt5sql5-ibase

→ Ссылка