摆烂积极分子 2024-01-11 22:39 采纳率: 0%
浏览 163

关于#sqlite#的问题:已有SQLITECIPHER驱动,但使用Qt连接时仍显示没有驱动(相关搜索:数据库)

已有SQLITECIPHER驱动,但使用Qt连接时仍显示没有驱动

img

img

编译出的下图放在了对应的Qt数据库驱动中

img

img

Qt版本

img

数据库是SQLite3
SQLITECIPHER编译的是

img

使用SQLITECIPHER的test测试是总显示没驱动

img

这是为什么呀,why,我不理解,头秃.jpg
求解答

  • 写回答

2条回答 默认 最新

  • 摆烂积极分子 2024-01-11 23:13
    关注

    已解决,原来是qt的连接代码出错。
    原连接代码

    QSqlDatabase dbconn = QSqlDatabase::addDatabase("SQLITECIPHER");
    dbconn.setDatabaseName(DB_FILE_PATH);
    dbconn.setPassword("test");
    dbconn.setConnectOptions("QSQLITE_USE_CIPHER=sqlcipher; QSQLITE_CREATE_KEY");
    if (!dbconn.open()) {
        qDebug() << "Can not open connection: " << dbconn.lastError().driverText();
        exit(CONNECTION_FAILED);
    }
    

    根据SQLiteStudio添加有密码的数据时测试出的密码形式:wXSQLite3: AES 128 Bit

    img

    修改代码中的dbconn.setConnectOptions("QSQLITE_USE_CIPHER=sqlcipher; QSQLITE_CREATE_KEY");

    dbconn.setConnectOptions("QSQLITE_USE_CIPHER=sqlcipher; QSQLITE_CREATE_KEY");
    //将上面一行修改为下面一行;(QSQLITE_CREATE_KEY删去,不知道为什么创建密码失败,可能是已经有密码了???)                                    
    dbconn.setConnectOptions("QSQLITE_USE_CIPHER=aes128cbc");
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月11日