我使用c++解释器(root,cern框架)在一个循环中访问几个mysql表。每次查询不存在的表时,程序都会退出:
for (int run = 19000; run < 22000; run ++) {
s << run;
num = s.str();
schema = "run_0"+num+"_R007";
s.str("");
//creating our query
query = "select distinct *whatever* from "+schema+".kTrack;";
res = conPtr->Query(query);
conPtr->Close();
//Here is where I don't know what to do:
if (*success*) {
do stuff
}
else {
do stuff
}
}
如果表返回0行,我没有问题;如果表不存在,我有问题。
我的代码怎么了?
1条答案
按热度按时间fhg3lkii1#
假设
conPtr
是指向TMySQLServer
对象,root的文档TMySQLServer::Query()
说:返回指向
TSQLResult
对象,否则为0。用户必须删除结果对象。所以呢
Query()
失败时返回空指针。另外,由于循环不会在每次迭代中重新打开新的db连接,因此不应该调用
conPtr->Close()
直到用它执行完查询。请尝试以下操作: