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

Function gen_cursor_open

src/gpre/languages/cob.cpp:1517–1555  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1515//
1516
1517static void gen_cursor_open( const act* action, const gpre_req* request)
1518{
1519 if (action->act_type != ACT_open)
1520 printa(names[COLUMN], false, "IF %s%dS = 0 THEN", names[isc_a_pos], request->req_ident);
1521 else
1522 printa(names[COLUMN], false, "IF (%s%dS = 0) AND %s NOT = 0 THEN",
1523 names[isc_a_pos], request->req_ident, request->req_handle);
1524 if (gpreGlob.sw_auto)
1525 printa(names[COLUMN], false, "IF %s NOT = 0 THEN", request->req_database->dbb_name->sym_string);
1526 printa(names[COLUMN], true, "CALL \"%s\" USING %s, %s%s, %s%s%dS",
1527 ISC_DSQL_ALLOCATE,
1528 status_vector(action),
1529 BY_REF, request->req_database->dbb_name->sym_string,
1530 BY_REF, names[isc_a_pos], request->req_ident);
1531 if (gpreGlob.sw_auto)
1532 printa(names[COLUMN], false, "END-IF");
1533 printa(names[COLUMN], false, "END-IF");
1534
1535 printa(names[COLUMN], false, "IF %s%dS NOT = 0 THEN", names[isc_a_pos], request->req_ident);
1536 if (gpreGlob.sw_auto)
1537 printa(names[COLUMN], false, "IF %s NOT = 0 THEN", request_trans(action, request));
1538
1539 TEXT s[MAX_CURSOR_SIZE];
1540 make_name_formatted(s, "ISC-CONST-%s", ((open_cursor*) action->act_object)->opn_cursor);
1541 printa(names[COLUMN], true, "CALL \"%s\" USING %s, %s%s%dS, %s%s, %s0%s",
1542 ISC_DSQL_SET_CURSOR,
1543 status_vector(action),
1544 BY_REF, names[isc_a_pos], request->req_ident,
1545 BY_REF, s, BY_VALUE, END_VALUE);
1546 printa(names[COLUMN], false, "IF %s(2) = 0 THEN", names[isc_status_pos]);
1547 printa(names[COLUMN], true, "CALL \"%s\" USING %s, %s%s, %s%s%dS, %s0%s, %s, %s-1%s, %s0%s, %s",
1548 ISC_DSQL_EXECUTE,
1549 status_vector(action),
1550 BY_REF, request_trans(action, request),
1551 BY_REF, names[isc_a_pos], request->req_ident,
1552 BY_VALUE, END_VALUE,
1553 OMITTED, BY_VALUE, END_VALUE, BY_VALUE, END_VALUE, OMITTED);
1554 printa(names[COLUMN], false, "IF %s(2) = 0 THEN", names[isc_status_pos]);
1555}
1556
1557
1558//____________________________________________________________

Callers 2

gen_blob_openFunction · 0.70
gen_s_startFunction · 0.70

Calls 4

printaFunction · 0.70
status_vectorFunction · 0.70
request_transFunction · 0.70
make_name_formattedFunction · 0.70

Tested by

no test coverage detected