- 论坛徽章:
- 0
|
MYSQL_RES *res_a;
MYSQL_RES *res_b;
MYSQL_RES *res_c;
MYSQL_ROW row_a;
MYSQL_ROW row_b;
MYSQL_ROW row_c;
char *set_a[10000]; // row(10000)
char *set_b[100]; // row(100)
char *set_c[100]; // row(100)
int r=0;
...
//----------------------------------------------------------------------
mysql_query (conn, "select column_a from tmp_a");
res_a = mysql_store_result(conn);
const int count_a = (int)mysql_num_rows(res_a);
while((row_a = mysql_fetch_row(res_a)) != NULL)
set_hsc[r++] = *(row_a++);
//for(int r=0; r<count_a; r++) cout << r << " : " <<set_a[r] << endl;
mysql_free_result(res_hsc);
//----------------------------------------------------------------------
mysql_query (conn, "select column_b from tmp_b");
res_b = mysql_store_result(conn);
const int count_b = (int)mysql_num_rows(res_b);
r =0;
while((row_b = mysql_fetch_row(res_b)) != NULL)
set_b[r++] = *(row_b++);
//for(int r=0; r<count_b; r++) cout << r << " : " <<set_b[r] << endl;
mysql_free_result(res_b);
//----------------------------------------------------------------------
mysql_query (conn, "select column_c from tmp_c");
res_c = mysql_store_result(conn);
const int count_c = (int)mysql_num_rows(res_c);
r=0;
while((row_c = mysql_fetch_row(res_c)) != NULL)
set_c[r++] = *(row_c++);
//for(int r=0; r<count_c; r++) cout << r << " : " <<set_c[r] << endl;
mysql_free_result(res_c);
------------------------------------------------------
到次为止,顺序显示获得recorde正常
再次调用
*set_a[10000]
*set_b[100]
*set_c[100]
的值,内存值全乱了?为何?我的理解是MYSQL_RES和MYSQL_ROW是使用链表存储查询结果,但是不断指向同一个地址,但是我使用了不同的MYSQL_RES和MYSQL_ROW,并且释放了MYSQL_RES,为何还会这样? |
|