gpt4 book ai didi

c++ - sql::InvalidArgumentException MySql C++

转载 作者:行者123 更新时间:2023-11-29 05:28:33 25 4
gpt4 key购买 nike

我正在使用 VisualStudio 12 开发一个应用程序。在那个应用程序中我需要做一些 mySql 调用,我有代码:

sql::Statement *stmt = db->global->createStatement();
sql::ResultSet *res = stmt->executeQuery("SELECT * FROM `tbl_jobs` WHERE name = 'maintenance';");
Server->maintenance = (res->getString("data") == "on")? true : false;

查询正常,在 Navicat 上运行良好,但在:

res->getString("data")

曾经抛出的那个错误:

Unhandled exception at ...: Microsoft C++ exception: sql::InvalidArgumentException at memory location ....

如果我执行 sql::SQlException 抛出我得到这个日志:

ERROR: SQLException in .... Function: main on line 33 ERROR: MySQL_ResultSet::getString: can't fetch because not on result set (MySql error code: 1544116026, SqlState: MySQL_ResultSet::getString: can't fetch because not on result set)

我理解 sql::ResultSet 没有任何数据,但如果我打印 res->rowsCount() 说我是 1 行...我尝试使用 res->first(),但抛出随机错误。

¿有什么想法吗? :c

最佳答案

您必须调用 next() 或类似方法以使您的结果集指向集合中的第 n 个结果

如果您的结果集为空,则调用 getString() 将失败。在继续之前检查结果。像这样的东西:

if(!res->next())
return; //Handle Failiure

在尝试对结果进行操作之前执行此操作

Here他们交替使用 while 循环。

关于c++ - sql::InvalidArgumentException MySql C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17294611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com