问题描述
- 求助:QT无法操作已有的sqlite数据库
- 版本:qt5.3 sqlite2.7
描述:
1.qt在代码中建的库和表代码中可以随意操作,但终端sqlite命令打不开提示“unable to open …… file is encryped or is not a database”
2.在终端通过命令建的数据库qt代码中 可以.open()但无法操作 找不到表bool Data::connect(QString usrType)
{
//stDB = QSqlDatabase::addDatabase(""QSQLITE"");
stDB = new QSqlDatabase(QSqlDatabase::addDatabase(""QSQLITE""connectname""));
stDB->setDatabaseName(""./DB/"" + usrType);
if (stDB->open())
{
//QMessageBox::information(NULL数据库""connect!"");
return true;
}
else
{
QMessageBox::critical(NULL数据库""connect error"");
}
return false;
}int Data::check_usr(QString str_name QString str_pwd int flag)
{
int usr_flag = 0;
//QTextCodec::setCodecForLocale(QTextCodec::codecForName(""GBK""));
QSqlQuery query(*stDB);
if(query.exec(""select * from users""))
{
while(query.next())
{
QString name = query.value(0).toString();
QString pwd = query.value(1).toString();
if(name == str_name && pwd == str_pwd)
{
if(name == ""admin"")
{
return usr_flag;
}
return usr_flag + flag;
}
}
}
return -1;
}
解决方案
自己解决了 版本不兼容 qt5生成的事sqlite3文件 竟然不兼容?