我对sql数据库有多个查询。我创建了一个对象来存储我的连接信息
ConObj() {
//create connection
driver = get_driver_instance();
con = driver->connect(server_adress,USER_ID,passphrase);
con->setSchema(dbName);
stmt = con->createStatement();
}
的第一次呼叫
res = -> executeQuery(SQLQUERY);
工作正常,并在
之类的函数中循环for(std::string elem: queries){
res = -> executeQuery(SQLQUERY);
doSomething(res);
}
也可以正常工作。 但是,当我使用另一个有效的sql语句调用一个使新功能成为新函数的新函数时(如果我先调用它,该函数便会起作用),我得到以下异常:
ConObj obj;
obj.makeFirstRequests();
doSomething();
obj.makeSecondRequest();
在引发'sql :: SQLException'实例后调用终止
what():命令不同步;您现在不能运行此命令
当我使用
在每个函数中建立连接时,代码也能正常工作con = driver->connect(server_adress,USER_ID,passphrase);
con->setSchema(dbName);
stmt = con->createStatement();
但是由于性能原因和舒适度的原因,我想保持连接打开并进行新查询。 有什么办法可以做到,还是我必须在每个新函数中都对其进行初始化?而且我不理解为什么我必须在新函数中而不是在循环中这样做。 (也许两次通话之间有很多时间?)
感谢您的时间。