我想在我的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";
}
提前致谢, Luis Da Costa
答案 0 :(得分:0)
我想我认为你了。 来自QT Doc:
警告:您必须加载SQL驱动程序 然后打开连接 QSqlQuery已创建。而且, 连接必须保持打开状态 查询存在;否则,行为 QSqlQuery未定义。
因此,在打开数据库之后创建Query对象(即在方法中声明)