连接到firebird后嵌入式不执行SQL请求。 在数据库中有一个名为test的表。
db = QSqlDatabase::addDatabase("QIBASE");
db.setDatabaseName("C:\data.fdb");
db.setUserName("SYSDBA");
db.setPassword("masterkey");
if (db.open()) {
qDebug() << "success";
}
else {
qDebug() << db.lastError();
}
QSqlQuery q("", db);
q.exec("show tables;");
qDebug() << q.lastError();
qDebug() << q.lastError().type();
qDebug() << q.lastQuery();
调试:
success
QSqlError("-104", "Could not prepare statement", "Dynamic SQL Error - SQL
error code = -104 - Token unknown - line 1, column 1 - show")
2
"show tables;"
答案 0 :(得分:2)
show
命令不是SQL的一部分,因此show tables;
不是Firebird引擎识别的命令。各种show
命令由一些外部工具实现,即isql。
尝试使用ie select 1 from rdb$database
作为“测试语句”(rdb$database
是Firebird版本的Oracle dual
表)。或者尝试从数据库中的test
表中进行选择。