PyQt错误:QSqlDatabasePrivate::数据库:无法打开数据库
以下错误的原因是什么: QSqlDatabasePrivate::数据库:无法打开数据库:无法打开数据库 打开数据库时发生文件错误 代码是100%正确的,当我重新安装Windows、Python和PyQt时出现此消息PyQt错误:QSqlDatabasePrivate::数据库:无法打开数据库,qt,sqlite,pyqt,Qt,Sqlite,Pyqt,以下错误的原因是什么: QSqlDatabasePrivate::数据库:无法打开数据库:无法打开数据库 打开数据库时发生文件错误 代码是100%正确的,当我重新安装Windows、Python和PyQt时出现此消息 编辑:我在具有.db文件属性的文件夹中有“只读”标志。当我取消设置并再次打开文件夹属性时,它将保持灰色(半选中)。我在文件夹属性中取消设置了“使用简单共享”标志,我有管理员权限,正如我所看到的,我的计算机上没有病毒。这个讨厌的问题在超级用户身上也没有解决方案。如何为此文件夹和文件设
编辑:我在具有.db文件属性的文件夹中有“只读”标志。当我取消设置并再次打开文件夹属性时,它将保持灰色(半选中)。我在文件夹属性中取消设置了“使用简单共享”标志,我有管理员权限,正如我所看到的,我的计算机上没有病毒。这个讨厌的问题在超级用户身上也没有解决方案。如何为此文件夹和文件设置sqlite的适当权限?在以下情况下会发生上述错误:
- Qt认为数据库有效
- 数据库未打开,并且
- 它无法打开数据库
QSqlDatabase QSqlDatabasePrivate::database(const-QString&name,bool-open)
{
常量QConnectionDict*dict=dbDict();
Q_断言(dict);
dict->lock.lockForRead();
QSqlDatabase db=dict->value(名称);
dict->lock.unlock();
if(db.isValid()&&!db.isOpen()&&open){
如果(!db.open())
qWarning()这个问题的另一个原因可能是路径编码。在我的例子中,使用unicode(name)
解决了这个问题
QSqlDatabase QSqlDatabasePrivate::database(const QString& name, bool open)
{
const QConnectionDict *dict = dbDict();
Q_ASSERT(dict);
dict->lock.lockForRead();
QSqlDatabase db = dict->value(name);
dict->lock.unlock();
if (db.isValid() && !db.isOpen() && open) {
if (!db.open())
qWarning() << "QSqlDatabasePrivate::database: unable to open database:" << db.lastError().text();
}
return db;
}