| 2287 | // |
| 2288 | |
| 2289 | static void gen_emodify( const act* action) |
| 2290 | { |
| 2291 | TEXT s1[MAX_REF_SIZE], s2[MAX_REF_SIZE]; |
| 2292 | |
| 2293 | const upd* modify = (upd*) action->act_object; |
| 2294 | |
| 2295 | for (const ref* reference = modify->upd_port->por_references; reference; |
| 2296 | reference = reference->ref_next) |
| 2297 | { |
| 2298 | const ref* source = reference->ref_source; |
| 2299 | if (!source) |
| 2300 | continue; |
| 2301 | const gpre_fld* field = reference->ref_field; |
| 2302 | gen_name(s1, source, true); |
| 2303 | gen_name(s2, reference, true); |
| 2304 | if (field->fld_dtype == dtype_blob || field->fld_dtype == dtype_quad || |
| 2305 | field->fld_dtype == dtype_date) |
| 2306 | { |
| 2307 | sprintf(output_buffer, "%sCALL \"isc_qtoq\" USING %s, %s\n", names[COLUMN], s1, s2); |
| 2308 | } |
| 2309 | else |
| 2310 | sprintf(output_buffer, "%sMOVE %s TO %s\n", names[COLUMN], s1, s2); |
| 2311 | RMC_print_buffer(output_buffer, true); |
| 2312 | if (field->fld_array_info) |
| 2313 | gen_get_or_put_slice(action, reference, false); |
| 2314 | } |
| 2315 | |
| 2316 | gen_send(action, modify->upd_port); |
| 2317 | } |
| 2318 | |
| 2319 | |
| 2320 | //____________________________________________________________ |
no test coverage detected