| 1559 | // |
| 1560 | |
| 1561 | static void gen_dyn_prepare( const act* action, int column) |
| 1562 | { |
| 1563 | gpre_req* request; |
| 1564 | gpre_req req_const; |
| 1565 | |
| 1566 | dyn* statement = (dyn*) action->act_object; |
| 1567 | const gpre_dbb* database = statement->dyn_database; |
| 1568 | |
| 1569 | const TEXT* transaction; |
| 1570 | if (statement->dyn_trans) |
| 1571 | { |
| 1572 | transaction = statement->dyn_trans; |
| 1573 | request = &req_const; |
| 1574 | request->req_trans = transaction; |
| 1575 | } |
| 1576 | else |
| 1577 | { |
| 1578 | transaction = "gds_trans"; |
| 1579 | request = NULL; |
| 1580 | } |
| 1581 | |
| 1582 | if (gpreGlob.sw_auto) |
| 1583 | { |
| 1584 | t_start_auto(action, request, status_vector(action), column, true); |
| 1585 | printa(column, "if %s%s /= 0 then", gpreGlob.ada_package, transaction); |
| 1586 | column += INDENT; |
| 1587 | } |
| 1588 | |
| 1589 | TEXT s[MAX_CURSOR_SIZE]; |
| 1590 | if (statement->dyn_sqlda) |
| 1591 | printa(column, |
| 1592 | "firebird.embed_dsql_prepare (isc_status, %s%s, %s%s, %s, %s'length(1), %s, %d, %s'address);", |
| 1593 | gpreGlob.ada_package, database->dbb_name->sym_string, gpreGlob.ada_package, |
| 1594 | transaction, make_name(s, statement->dyn_statement_name), |
| 1595 | statement->dyn_string, statement->dyn_string, gpreGlob.sw_sql_dialect, |
| 1596 | statement->dyn_sqlda); |
| 1597 | else |
| 1598 | printa(column, |
| 1599 | "firebird.embed_dsql_prepare (isc_status, %s%s, %s%s, %s, %s'length(1), %s, %d);", |
| 1600 | gpreGlob.ada_package, database->dbb_name->sym_string, gpreGlob.ada_package, |
| 1601 | transaction, make_name(s, statement->dyn_statement_name), |
| 1602 | statement->dyn_string, statement->dyn_string, gpreGlob.sw_sql_dialect); |
| 1603 | |
| 1604 | if (gpreGlob.sw_auto) |
| 1605 | { |
| 1606 | column -= INDENT; |
| 1607 | endif(column); |
| 1608 | } |
| 1609 | |
| 1610 | set_sqlcode(action, column); |
| 1611 | } |
| 1612 | |
| 1613 | |
| 1614 | //____________________________________________________________ |
no test coverage detected