查看完整版本: [-- QSqlDatabase无法在开机自启动时加载数据 --]

QTCN开发网 -> Qt基础编程 -> QSqlDatabase无法在开机自启动时加载数据 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

wlq19911021 2022-04-23 14:18

QSqlDatabase无法在开机自启动时加载数据

QSqlDatabase无法在开机自启动时加载数据;
环境:Win10 X64 + mingw64 + Qt5.12.0
数据库类型:SQLite3
目前手动启动是正常的,开机自启自动加载就没有数据(且没有任何报错);程序文件夹放在非系统目录,理应不涉及权限问题;有用过QSqlDatabase + SQLite开机自启加载的大哥麻烦帮个小忙,小弟先谢过了

liudianwu 2022-04-24 08:36
延时启动试试

spygg 2022-04-24 17:56
打印下日志呢? 如果你的是在注册表设置的开机启动会出好多问题,比如各种com加载可能会出问题

clickto 2022-04-24 20:07
没遇到过。我们开发工控软件,也是开机启动,也是使用的sqlite3,环境是mingw32,Qt5.11,没遇到过你所说的情况。
你可以在程序启动若干时间后再初始化数据库试试看?

圣域天子 2022-04-25 10:54
DB服务可能还没有启动好,如果你做的也是服务,需要加一个依赖
如果不是,我以前做法是半分钟连接一次,三分钟后还不行,才退出程序并报错

spygg 2022-04-25 21:45
圣域天子:
DB服务可能还没有启动好,如果你做的也是服务,需要加一个依赖
如果不是,我以前做法是半分钟连接一次,三分钟后还不行,才退出程序并报错

用这种添加启动快捷方式的方法安全无痛.....
1.适应各种情况
2.不会被杀软拦截
  1. /*!
    * \brief runWithWindows
    * \param autoRun
    * \param exeName     should be QCoreApplication::applicationFilePath()
    * \param linkName    whatever
    */
    void runWithWindows(bool autoRun, QString exeName, QString linkName)
    {
    #ifdef Q_OS_WIN
        QString startUpPath = QString("%1/%2")
                .arg(QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation))
                .arg("Startup");

        QDir dir;
        if(!dir.exists(startUpPath)){
            startUpPath = QString("%1/%2")
                    .arg(QStandardPaths::writableLocation(QStandardPaths::ApplicationsLocation))
                    .arg("启动");
        }

        QString linkFull = QString("%1/%2.lnk")
                .arg(startUpPath)
                .arg(linkName);

        if(autoRun){
            //如果文件不一致,则创建
            if(QFile::symLinkTarget(linkFull) != exeName){
                QFile::link(exeName, linkFull);
            }
        }
        else{
            if(QFile::exists(linkFull)){
                QFile::remove(linkFull);
            }
        }
    #else
        /// 编写 etc/rc.local 编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows下的“启动”
    #endif
    }



查看完整版本: [-- QSqlDatabase无法在开机自启动时加载数据 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled