从mysql中查得一个结果集,这个结果集中每一行是一个数组,数组中保存每个列的数据,每个元素都是字符串。
我在gdb中可以查看数组的数据,比如:
(gdb) p *(this->m_oJzDbOperator.FetchRow())@10   
$5 = {0x8157760 "1232435506", 0x815776b "7", 0x815776d "1232434844", 0x8157778 "5", 0x815777a "534649909", 0x8157784 "14978685559939888", 0x8157796 "100", 0x815779a "0", 
  0x815779c "0", 0x815779e "3125"}访问第一个元素正常,但是当访问到数组每二个元素时,必定core掉。在连接数据时设置了MYSQL_OPT_LOCAL_INFILE标志。
查询代码如下:
    snprintf(szQueryStr, SIZE_SQL_QUERY_BUF, 
"%s from %s_%s as goods, c2c_shop_%s as shop where goods.qquin = shop.qquin and goods.seqno>=%d and goods.seqno<%d", 
        m_sQueryStrPrefix.c_str(), m_oJzDbCfg.szDBTableName, 
        m_oFixLengthNumGenerator.GetTableName(iTableNum).c_str(),
m_oFixLengthNumGenerator.GetTableName(iTableNum).c_str(),
        m_lastEndTime, m_endTime);
LOG4CPLUS_DEBUG(g_ServerLog, "Query SQL: "<< szQueryStr);
    try
    {
        m_oJzDbOperator.Query(szQueryStr);
    }构造出来的语句,在mysql终端能正常执行并查出结果。编译环境与程序运行环境,操作系统和G++都是一样的。