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

Function asgn_from

src/gpre/languages/ada.cpp:505–540  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

503//
504
505static void asgn_from( const act* action, ref* reference, int column)
506{
507 TEXT name[MAX_REF_SIZE], variable[MAX_REF_SIZE], temp[MAX_REF_SIZE];
508
509 for (; reference; reference = reference->ref_next)
510 {
511 const gpre_fld* field = reference->ref_field;
512 if (field->fld_array_info)
513 if (!(reference->ref_flags & REF_array_elem))
514 {
515 printa(column, "%s := firebird.null_blob;", gen_name(name, reference, true));
516 gen_get_or_put_slice(action, reference, false, column);
517 continue;
518 }
519
520 if (!reference->ref_source && !reference->ref_value)
521 continue;
522 gen_name(variable, reference, true);
523 const TEXT* value;
524 if (reference->ref_source)
525 value = gen_name(temp, reference->ref_source, true);
526 else
527 value = reference->ref_value;
528
529 if (!reference->ref_master)
530 printa(column, "%s := %s;", variable, value);
531 else
532 {
533 printa(column, "if %s < 0 then", value);
534 printa(column + INDENT, "%s := -1;", variable);
535 printa(column, "else");
536 printa(column + INDENT, "%s := 0;", variable);
537 endif(column);
538 }
539 }
540}
541
542//____________________________________________________________
543//

Callers 3

gen_procedureFunction · 0.70
gen_s_startFunction · 0.70
gen_updateFunction · 0.70

Calls 4

printaFunction · 0.70
gen_nameFunction · 0.70
gen_get_or_put_sliceFunction · 0.70
endifFunction · 0.70

Tested by

no test coverage detected