| 471 | } |
| 472 | |
| 473 | static void mysql_rows_save(MYSQL_RES* my_res, db_rows& result) |
| 474 | { |
| 475 | int ncolumn = __mysql_num_fields(my_res); |
| 476 | MYSQL_FIELD *fields = __mysql_fetch_fields(my_res); |
| 477 | |
| 478 | // ȡ�������� |
| 479 | for (int j = 0; j < ncolumn; j++) { |
| 480 | result.names_.push_back(fields[j].name); |
| 481 | } |
| 482 | |
| 483 | // ��ʼȡ�����������ݽ�������붯̬������ |
| 484 | while (true) { |
| 485 | MYSQL_ROW my_row = __mysql_fetch_row(my_res); |
| 486 | if (my_row == NULL) { |
| 487 | break; |
| 488 | } |
| 489 | unsigned long *my_lengths = __mysql_fetch_lengths(my_res); |
| 490 | if (my_lengths == NULL) { |
| 491 | break; |
| 492 | } |
| 493 | db_row* row = NEW db_row(result.names_); |
| 494 | for (int j = 0; j < ncolumn; j++) { |
| 495 | row->push_back(my_row[j], (size_t) my_lengths[j]); |
| 496 | } |
| 497 | result.rows_.push_back(row); |
| 498 | } |
| 499 | |
| 500 | result.result_free = mysql_rows_free; |
| 501 | result.result_tmp_ = my_res; |
| 502 | } |
| 503 | |
| 504 | ////////////////////////////////////////////////////////////////////////// |
| 505 |
no test coverage detected
searching dependent graphs…