Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
QT Sql错误:未定位在有效记录上_Sql_Qt_Odbc - Fatal编程技术网

QT Sql错误:未定位在有效记录上

QT Sql错误:未定位在有效记录上,sql,qt,odbc,Sql,Qt,Odbc,我无法使用QODBC运行Select查询(不需要QMysql)。它们抛出QSqlQuery::value:未定位在有效记录上。但是,其他查询运行良好 Stackoverflow上有其他线程处理同一问题。但是没有一个能解决我的问题。这里有一些 QSqlDatabase db=QSqlDatabase::addDatabase(“QODBC”); setDatabaseName(“Driver={MySQL ODBC 8.0 UNICODE Driver};DATABASE=dbname;”;

我无法使用QODBC运行Select查询(不需要QMysql)。它们抛出
QSqlQuery::value:未定位在有效记录上
。但是,其他查询运行良好

Stackoverflow上有其他线程处理同一问题。但是没有一个能解决我的问题。这里有一些

QSqlDatabase db=QSqlDatabase::addDatabase(“QODBC”);
setDatabaseName(“Driver={MySQL ODBC 8.0 UNICODE Driver};DATABASE=dbname;”;
db.setUserName(“根”);
db.setPassword(“mysql”);
如果(!db.open()){

qDebug()您的查询结果为空。在访问
query.value(“name”)
之前,请先检查
query.first()
是否为
as
true
,然后再输入
if条件
i出现错误
QSqlError(“0”,“QODBC3:无法获取第一个”,“[iODBC][驱动程序管理器]可选功能未实现”)
我正在使用Mac。如何解决这个问题?请查看QtQuery的Qt文档
prepare()
。问题可能存在于您特定的OS/ODBC驱动程序中。您也可以直接测试
query.exec(“从id=1的用户中选择id,名称”);
不起作用。我跳过了prepare()语句,并将该语句放在exec()中。是否还有其他出路
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={MySQL ODBC 8.0 UNICODE Driver};DATABASE=dbname;");
db.setUserName("root");
db.setPassword("mysql");
if (!db.open()) {
    qDebug() << db.lastError();
} else {

    QSqlQuery query;
    query.prepare("SELECT id, name FROM users where id=1;");
    if (!query.exec())
    {
        qDebug() << "SQL error: "<< query.lastError().text() << endl;
    }
    query.first();

    qDebug() << query.value("name").toString() ;

}