• win10 QT failure attempt to write a readonly database


    err: insert LINK failure attempt to write a readonly database

    err: insert SCAN failure attempt to write a readonly database

    在网上找了许多文章都说原因是用户权限不足,无法访问数据库文件。但都没针对window提供很好的解决办法。我在QT开发过程中也遇到类似的问题,后来发现QT可以访问它自己创建的文件。因此,这里的解决办法就是不用现成的db文件,重新调用sqlite3_open函数来创建新的db文件。这样操作后,qt就可以向db文件写入数据了。

    1. /* 打开DB */
    2. sqlite3 *db;
    3. m_handle = nullptr;
    4. const char* path = "./png/sim.db";
    5. int ret = sqlite3_open_v2(path, &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL);
    6. if (ret != SQLITE_OK) {
    7. printf("err: open DB\n");
    8. fflush(stdout);
    9. return;
    10. }
    11. /* 保存句柄 */
    12. m_handle = db;
    13. /* 删除表格 */
    14. char* errMsg = nullptr;
    15. const char* tlist[] = {"SCAN", "LINK"};
    16. char* sql1 = sqlite3_mprintf("drop table if exists %s", tlist[tab]);
    17. int rc = sqlite3_exec(m_handle, sql1, 0, 0, &errMsg);
    18. if (rc != SQLITE_OK) {
    19. printf("err: drop %s failure %s\n", tlist[tab], errMsg);
    20. sqlite3_free(errMsg);
    21. sqlite3_free(sql1);
    22. fflush(stdout);
    23. return;
    24. }
    25. sqlite3_free(sql1);
    26. /* 重建表格 */
    27. char *sql2 = sqlite3_mprintf("create table if not exists %s(year INTEGER, month INTEGER, day INTEGER, hour INTEGER,"
    28. "min INTEGER, sec INTEGER, valid INTEGER, glbChId INTEGER, snr INTEGER, noise INTEGER,"
    29. "UNIQUE(year, month, day, hour, min, sec, glbChId) ON CONFLICT REPLACE)", tlist[tab]);
    30. rc = sqlite3_exec(m_handle, sql2, 0, 0, &errMsg);
    31. if (rc != SQLITE_OK) {
    32. printf("err: create SCAN failure %s\n", errMsg);
    33. sqlite3_free(errMsg);
    34. sqlite3_free(sql2);
    35. return;
    36. }
    37. sqlite3_free(sql2);

  • 相关阅读:
    Python:实现reverse letters反向字母算法(附完整源码)
    Prompt原理详解
    Python字母数字下划线生成田字格随机密码
    【Transformer系列】深入浅出理解ViT(Vision Transformer)网络模型
    Linux安装mysql数据库并实现主从搭建
    Java性能优化可算是讲明白了,优化权威指南就是强
    攻防世界WEB练习-favorite_number
    【Mysql】清理binlog日志的方法
    Nacos config 配置相关
    系列三、双亲委派机制
  • 原文地址:https://blog.csdn.net/lzhengp1986/article/details/132923073