MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / gen_dyn_execute

Function gen_dyn_execute

src/gpre/languages/pas.cpp:1424–1473  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1422//
1423
1424static void gen_dyn_execute( const act* action, int column)
1425{
1426 gpre_req* request;
1427 gpre_req req_const;
1428
1429 const dyn* statement = (dyn*) action->act_object;
1430 const TEXT* transaction;
1431 if (statement->dyn_trans)
1432 {
1433 transaction = statement->dyn_trans;
1434 request = &req_const;
1435 request->req_trans = transaction;
1436 }
1437 else
1438 {
1439 transaction = "gds__trans";
1440 request = NULL;
1441 }
1442
1443 if (gpreGlob.sw_auto)
1444 {
1445 printa(column, "if (%s = nil) then", transaction);
1446 column += INDENT;
1447 t_start_auto(action, request, status_vector(action), column + INDENT);
1448 column -= INDENT;
1449 }
1450
1451 TEXT s[MAX_CURSOR_SIZE];
1452 make_name(s, statement->dyn_cursor_name);
1453
1454 gpre_nod* var_list;
1455 if (var_list = statement->dyn_using)
1456 {
1457 printa(column, "gds__sqlda.sqln = %s;", gpreGlob.sw_dyn_using);
1458 printa(column, "gds__sqlda.sqld = %s;", gpreGlob.sw_dyn_using);
1459 for (int i = 0; i < var_list->nod_count; i++)
1460 asgn_sqlda_from(reinterpret_cast<ref*>(var_list->nod_arg[i]), i, s, column);
1461 }
1462
1463 printa(column,
1464 statement->dyn_sqlda2 ?
1465 "isc_embed_dsql_execute2 (gds__status, %s, %s, %d, %s %s, %s %s);" :
1466 "isc_embed_dsql_execute (gds__status, %s, %s, %d, %s %s);",
1467 transaction, make_name(s, statement->dyn_statement_name),
1468 gpreGlob.sw_sql_dialect, REF_PAR,
1469 statement->dyn_sqlda ? statement->dyn_sqlda : "gds__null^",
1470 REF_PAR,
1471 statement->dyn_sqlda2 ? statement->dyn_sqlda2 : "gds__null^");
1472 set_sqlcode(action, column);
1473}
1474
1475
1476//____________________________________________________________

Callers 1

PAS_actionFunction · 0.70

Calls 6

asgn_sqlda_fromFunction · 0.85
printaFunction · 0.70
t_start_autoFunction · 0.70
status_vectorFunction · 0.70
make_nameFunction · 0.70
set_sqlcodeFunction · 0.70

Tested by

no test coverage detected