我已经成功连接到PostgreSQL数据库,但我似乎无法查询它我已经尝试了几个查询但是仍然面对这个错误。
Connection Successful
QSqlError("42601", "QPSQL: Unable to create query", "ERROR: syntax error at
end of input\nLINE 1: EXECUTE \n ^\n(42601)")
我的代码
void MainWindow::connection()
{
QSqlDatabase db;
db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("postgres");
db.setUserName("postgres");
db.setPassword("xxx");
db.setPort(5433);
if (db.open())
qDebug() << "Connection Successful";
else
qDebug() << "Connection Failed!";
}
void MainWindow::query()
{
QSqlQuery query("select * from company");
if( !query.exec())
qDebug() << query.lastError();
else
{
while(query.next())
{
qDebug() << query.value(0).toString();
ui->label_2->setText(query.value(0).toString());
}
}
}
任何人都可以请赐教我
答案 0 :(得分:2)
您正在错误地使用Qt功能。
QSqlQuery query("select * from company");
直接执行查询,无需调用exec()。调用exec()会运行以前准备好的查询,但是您没有准备任何导致错误的查询。
您可能需要咨询Executing SQL Statements和SqlQuery reference
编辑:像这样的结构对我有用:QSqlQuery query("select * from company");
QSqlError error = query.lastError();
if (error.type() == QSqlError::NoError) {
while(query.next())
{
qDebug() << query.value(0).toString();
ui->label_2->setText(query.value(0).toString());
}
}
else {
qDebug() << error.text();
}