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

Function gen_procedure

src/gpre/languages/pas.cpp:2234–2281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2232//
2233
2234static void gen_procedure( const act* action, int column)
2235{
2236 column += INDENT;
2237 const gpre_req* request = action->act_request;
2238 gpre_port* in_port = request->req_vport;
2239 gpre_port* out_port = request->req_primary;
2240
2241 PAT args;
2242 args.pat_database = request->req_database;
2243 args.pat_request = action->act_request;
2244 args.pat_vector1 = status_vector(action);
2245 args.pat_request = request;
2246 args.pat_port = in_port;
2247 args.pat_port2 = out_port;
2248
2249 const TEXT* pattern;
2250 if (in_port && in_port->por_length)
2251 pattern =
2252 "isc_transact_request (%V1, %RF%DH%RE, %RF%RT%RE, %VF%RS%VE, %RI, %VF%PL%VE, %RF%PI%RE, %VF%QL%VE, %RF%QI%RE);";
2253 else
2254 pattern =
2255 "isc_transact_request (%V1, %RF%DH%RE, %RF%RT%RE, %VF%RS%VE, %RI, %VF0%VE, 0, %VF%QL%VE, %RF%QI%RE);";
2256
2257
2258 // Get database attach and transaction started
2259
2260 if (gpreGlob.sw_auto)
2261 t_start_auto(action, 0, status_vector(action), column);
2262
2263 // Move in input values
2264
2265 asgn_from(action, request->req_values, column);
2266
2267 // Execute the procedure
2268
2269 PATTERN_expand(column, pattern, &args);
2270
2271 set_sqlcode(action, column);
2272
2273 printa(column, "if SQLCODE = 0 then");
2274 column += INDENT;
2275 begin(column);
2276
2277 // Move out output values
2278
2279 asgn_to_proc(request->req_references, column);
2280 endp(column);
2281}
2282
2283
2284//____________________________________________________________

Callers 1

PAS_actionFunction · 0.70

Calls 9

PATTERN_expandFunction · 0.85
status_vectorFunction · 0.70
t_start_autoFunction · 0.70
asgn_fromFunction · 0.70
set_sqlcodeFunction · 0.70
printaFunction · 0.70
beginFunction · 0.70
asgn_to_procFunction · 0.70
endpFunction · 0.70

Tested by

no test coverage detected