这段代码有关问题在哪
这段代码问题在哪
每次断点调试都到不了if语句 总是直接到else 查询结果的行数是大于两行的
HallInfo item;
mysqlpp::Query query = g_conn.query();
CString cmd;
CTime tm = CTime::GetCurrentTime();
CTime preTm = tm - CTimeSpan(0, 0, 10, 0);
CString preTmStr = preTm.Format("'%Y-%m-%d %H:%M:%S'");
cmd.Format("select * from sv_counter.t_hall_data_5 where hall_id=%d and hall_time>%s;", i+1, preTmStr);
query << cmd;
mysqlpp::StoreQueryResult res = query.store();
if (res.num_rows()>=1)
{
item.m_HallID= res[res.num_rows()-1]["hall_id"];
item.m_HallCount = res[res.num_rows()-1]["hall_count"];
item.m_HallTime = res[res.num_rows()-1]["hall_time"];
}
else
{
item.m_HallID= i+1;
item.m_HallCount = 0;
item.m_HallTime = tm.Format("'%Y-%m-%d %H:%M:%S'");
}
------解决方案--------------------
你这不是没取到数据吗,你这么改就知道是不是已取到数据了:
mysqlpp::StoreQueryResult res = query.store();
int row;
row=res.num_rows();
if (row>=1)
{
....
}
else
{
....
}
你看row的值就知道已取了几行数据了.另个最好不要用MYSQL自带的库函数,免得库函数一升级原先的库函数就不好使了,到时你还得改程序来适应新的库函数
------解决方案--------------------
res.num_rows()>=1
int 还是 UINT ?
------解决方案--------------------
没有进入 就是不满足 If括号里的条件。 你设置断点 一步一步跑到这里看看 if里的值是否小于1.
然后再看看问题在哪。
每次断点调试都到不了if语句 总是直接到else 查询结果的行数是大于两行的
HallInfo item;
mysqlpp::Query query = g_conn.query();
CString cmd;
CTime tm = CTime::GetCurrentTime();
CTime preTm = tm - CTimeSpan(0, 0, 10, 0);
CString preTmStr = preTm.Format("'%Y-%m-%d %H:%M:%S'");
cmd.Format("select * from sv_counter.t_hall_data_5 where hall_id=%d and hall_time>%s;", i+1, preTmStr);
query << cmd;
mysqlpp::StoreQueryResult res = query.store();
if (res.num_rows()>=1)
{
item.m_HallID= res[res.num_rows()-1]["hall_id"];
item.m_HallCount = res[res.num_rows()-1]["hall_count"];
item.m_HallTime = res[res.num_rows()-1]["hall_time"];
}
else
{
item.m_HallID= i+1;
item.m_HallCount = 0;
item.m_HallTime = tm.Format("'%Y-%m-%d %H:%M:%S'");
}
------解决方案--------------------
你这不是没取到数据吗,你这么改就知道是不是已取到数据了:
mysqlpp::StoreQueryResult res = query.store();
int row;
row=res.num_rows();
if (row>=1)
{
....
}
else
{
....
}
你看row的值就知道已取了几行数据了.另个最好不要用MYSQL自带的库函数,免得库函数一升级原先的库函数就不好使了,到时你还得改程序来适应新的库函数
------解决方案--------------------
res.num_rows()>=1
int 还是 UINT ?
------解决方案--------------------
没有进入 就是不满足 If括号里的条件。 你设置断点 一步一步跑到这里看看 if里的值是否小于1.
然后再看看问题在哪。