| 2232 | // |
| 2233 | |
| 2234 | static 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 | //____________________________________________________________ |
no test coverage detected