查看完整版本: [--
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.不会被杀软拦截
复制代码
/*!
* \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