Sqlite: falha incoerência com query.prepare()
-
Olá pessoal, estou fazendo uma aplicação eu acessa um bd sqlite, criei o banco e as tabelas e tá tudo pronto, o problema é quando vou executar a query, eu abro a conexão e não gera erro nenhum, mas quando uso o QSqlQuery::prepare() ele escreve na saída do programa que a conexão não está aberta e gera erro na hora de executar a query, vou postar meu código:
Criar a conexão(este método é estático e não dispara exceções):
@QSqlDatabase SqliteConnection::get(){if(connection.isOpen()) return connection; connection = QSqlDatabase::addDatabase("QSQLITE"); connection.setDatabaseName(database); QFileInfo check_file(database); //Verifica se o arquivo existe if(!check_file.isFile()) throw new ConnectionException("database file not found."); //Tenta abrir o banco if(!connection.open()) throw new ConnectionException(connection.lastError().text()); return connection;
}@
Executar a query(essa é só a parte da query, isso tudo está dentro de um bloco try e o método faz parte da classe UserSqlite):
@ con = SqliteConnection::get();//sem erroquery.prepare("select * from user where name = :name and password = :password");//gera erro query.bindValue(":name", name); query.bindValue(":password", password); if(!query.exec()) throw new ConnectionException(query.lastError().text());@
Não entendo o que está errado, todos os tutoriais e vídeo do youtube fazem da mesma forma que eu fiz!! se alguém puder ajudar eu agradeço.