| 2493 | // |
| 2494 | |
| 2495 | static void gen_loop( const act* action, int column) |
| 2496 | { |
| 2497 | TEXT name[MAX_REF_SIZE]; |
| 2498 | |
| 2499 | gen_s_start(action, column); |
| 2500 | const gpre_req* request = action->act_request; |
| 2501 | const gpre_port* port = request->req_primary; |
| 2502 | |
| 2503 | printa(column, "if (!SQLCODE) "); |
| 2504 | column += INDENT; |
| 2505 | begin(column); |
| 2506 | |
| 2507 | gen_receive(action, column, port); |
| 2508 | |
| 2509 | endp(column); |
| 2510 | column -= INDENT; |
| 2511 | |
| 2512 | gen_name(name, port->por_references, true); |
| 2513 | printa(column, "if (!SQLCODE && !%s)", name); |
| 2514 | printa(column + INDENT, "SQLCODE = 100;"); |
| 2515 | |
| 2516 | if (request->req_flags & REQ_sql_returning) |
| 2517 | { |
| 2518 | printa(column, "if (!SQLCODE && %s)", name); |
| 2519 | column += INDENT; |
| 2520 | begin(column); |
| 2521 | |
| 2522 | gpre_nod* var_list = (gpre_nod*) action->act_object; |
| 2523 | for (int i = 0; var_list && i < var_list->nod_count; i++) |
| 2524 | { |
| 2525 | align(column); |
| 2526 | asgn_to(action, (ref*) (var_list->nod_arg[i]), column); |
| 2527 | } |
| 2528 | |
| 2529 | endp(column); |
| 2530 | column -= INDENT; |
| 2531 | } |
| 2532 | } |
| 2533 | |
| 2534 | |
| 2535 | //____________________________________________________________ |
no test coverage detected