如何解决类标题中的QSqlDatabase和QSqlQuery
| 我想在我的QT项目中创建一个类,以处理SQL连接以及所有必要的查询和sql事务。 我发现没有这个错误\“ QSqlQuery :: exec:数据库未打开\”我只需要在初始化并打开QSqlDatabase之后初始化QSqlQuery。 问题是我不知道该怎么做... 有我的代码:private:
QSqlDatabase MyDBConnection;
// Efectua a ligação à DB
bool MySqlCon()
{
MyDBConnection = QSqlDatabase::addDatabase(\"QMYSQL\");
if (!MyDBConnection.isValid())
qDebug() << \"ERRO DRIVER MYSQL\";
MyDBConnection.setHostName(\"localhost\");
MyDBConnection.setUserName(\"username\");
MyDBConnection.setPassword(\"password\");
if (MyDBConnection.open())
{
MySqlQuery = QSqlQuery(MyDBConnection);
return true;
}
else
{
qDebug() << MyDBConnection.lastError();
qDebug() << \"Não Ligado Com Sucesso\";
return false;
}
}
public:
QSqlQuery MySqlQuery;
// Lê valores na DB
void DBReader(QString Query)
{
if(MySqlCon())
MySqlQuery.exec(Query);
else
qDebug() << \"ERRO\";
}
提前致谢,
路易斯·达·科斯塔
解决方法
我想我知道了。
从QT Doc:
警告:您必须加载SQL驱动程序
并在连接之前打开连接
QSqlQuery已创建。另外,
连接必须保持打开状态
查询存在;否则,行为
QSqlQuery的值未定义。
因此,在打开数据库后创建Query对象(即在方法中声明它)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。