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

Function gen_procedure

src/gpre/languages/ada.cpp:2283–2328  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2281//
2282
2283static void gen_procedure( const act* action, int column)
2284{
2285 gpre_req* request = action->act_request;
2286 gpre_port* in_port = request->req_vport;
2287 gpre_port* out_port = request->req_primary;
2288
2289 const gpre_dbb* database = request->req_database;
2290 PAT args;
2291 args.pat_database = database;
2292 args.pat_request = action->act_request;
2293 args.pat_vector1 = status_vector(action);
2294 args.pat_string2 = gpreGlob.ada_null_address;
2295 args.pat_request = request;
2296 args.pat_port = in_port;
2297 args.pat_port2 = out_port;
2298
2299 const TEXT* pattern;
2300 if (in_port && in_port->por_length)
2301 pattern =
2302 "firebird.gds_transact_request (%V1 %RF%DH%RE, %RF%RT%RE, %VF%RS%VE, %RF%RI%RE, %VF%PL%VE, %PI'address, %VF%QL%VE, %QI'address);\n";
2303 else
2304 pattern =
2305 "firebird.gds_transact_request (%V1 %RF%DH%RE, %RF%RT%RE, %VF%RS%VE, %RF%RI%RE, %VF0%VE, %S2, %VF%QL%VE, %QI'address);\n";
2306
2307 // Get database attach and transaction started
2308
2309 if (gpreGlob.sw_auto)
2310 t_start_auto(action, 0, status_vector(action), column, true);
2311
2312 // Move in input values
2313
2314 asgn_from(action, request->req_values, column);
2315
2316 // Execute the procedure
2317
2318 PATTERN_expand(column, pattern, &args);
2319
2320 set_sqlcode(action, column);
2321
2322 printa(column, "if SQLCODE = 0 then");
2323
2324 // Move out output values
2325
2326 asgn_to_proc(request->req_references, column);
2327 endif(column);
2328}
2329
2330
2331//____________________________________________________________

Callers 1

ADA_actionFunction · 0.70

Calls 8

PATTERN_expandFunction · 0.85
status_vectorFunction · 0.70
t_start_autoFunction · 0.70
asgn_fromFunction · 0.70
set_sqlcodeFunction · 0.70
printaFunction · 0.70
asgn_to_procFunction · 0.70
endifFunction · 0.70

Tested by

no test coverage detected