QT QSqlDatabase open () не работает для длинного имени базы данных (путь к базе данных) - PullRequest
0 голосов
/ 28 сентября 2019

QSqlError (-1, «Ошибка открытия базы данных», «невозможно открыть файл базы данных»), когда мы пытаемся открыть базу данных qsqld с длинным именем базы данных (не поддерживается более 256 байтов)

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

SqliteOODB db;
QFileInfo fi(dbName);
QDir d = fi.dir();
char buffer[4096];
char* cwd = getcwd(buffer, 4096);
chdir(d.canonicalPath().toStdString().c_str());
m_sqldb = QSqlDatabase::addDatabase("QSQLITE",connectionName)
m_sqldb.setDatabaseName(fi.fileName());
if(!m_sqldb.isOpen()) {
    ok = m_sqldb.open();
    if (ok) {
    //////
    }
    else {
        qDebug()<<dbName<<m_sqldb.lastError();
        }
}
...