| 1358 | // |
| 1359 | |
| 1360 | static void gen_dyn_execute( const act* action, int column) |
| 1361 | { |
| 1362 | gpre_req* request; |
| 1363 | gpre_req req_const; |
| 1364 | |
| 1365 | dyn* statement = (dyn*) action->act_object; |
| 1366 | const TEXT* transaction; |
| 1367 | if (statement->dyn_trans) |
| 1368 | { |
| 1369 | transaction = statement->dyn_trans; |
| 1370 | request = &req_const; |
| 1371 | request->req_trans = transaction; |
| 1372 | } |
| 1373 | else |
| 1374 | { |
| 1375 | transaction = "gds_trans"; |
| 1376 | request = NULL; |
| 1377 | } |
| 1378 | |
| 1379 | if (gpreGlob.sw_auto) |
| 1380 | { |
| 1381 | t_start_auto(action, request, status_vector(action), column, true); |
| 1382 | printa(column, "if %s%s /= 0 then", gpreGlob.ada_package, transaction); |
| 1383 | column += INDENT; |
| 1384 | } |
| 1385 | |
| 1386 | TEXT s[MAX_CURSOR_SIZE]; |
| 1387 | if (statement->dyn_sqlda2) |
| 1388 | printa(column, "firebird.embed_dsql_execute2 (isc_status, %s%s, %s, %d, %s'address);", |
| 1389 | gpreGlob.ada_package, transaction, make_name(s, statement->dyn_statement_name), |
| 1390 | gpreGlob.sw_sql_dialect, |
| 1391 | statement->dyn_sqlda ? gpreGlob.ada_null_address : statement->dyn_sqlda, |
| 1392 | statement->dyn_sqlda2); |
| 1393 | else if (statement->dyn_sqlda) |
| 1394 | printa(column, "firebird.embed_dsql_execute (isc_status, %s%s, %s, %d, %s'address);", |
| 1395 | gpreGlob.ada_package, transaction, make_name(s, statement->dyn_statement_name), |
| 1396 | gpreGlob.sw_sql_dialect, statement->dyn_sqlda); |
| 1397 | else |
| 1398 | printa(column, "firebird.embed_dsql_execute (isc_status, %s%s, %s, %d);", |
| 1399 | gpreGlob.ada_package, transaction, make_name(s, statement->dyn_statement_name), |
| 1400 | gpreGlob.sw_sql_dialect); |
| 1401 | |
| 1402 | if (gpreGlob.sw_auto) |
| 1403 | { |
| 1404 | column -= INDENT; |
| 1405 | endif(column); |
| 1406 | } |
| 1407 | |
| 1408 | set_sqlcode(action, column); |
| 1409 | } |
| 1410 | |
| 1411 | |
| 1412 | //____________________________________________________________ |
no test coverage detected