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

Function asgn_to

src/gpre/languages/rmc.cpp:827–917  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

825//
826
827static void asgn_to( const act* action, ref* reference)
828{
829 TEXT s[MAX_REF_SIZE];
830
831 ref* source = reference->ref_friend;
832 const gpre_fld* field = source->ref_field;
833 gen_name(s, source, true);
834
835 if (field->fld_array_info)
836 {
837 source->ref_value = reference->ref_value;
838 gen_get_or_put_slice(action, source, true);
839 return;
840 }
841
842 if ((field->fld_dtype == dtype_date) && (strlen(gpreGlob.sw_cob_dformat) != 0))
843 {
844 sprintf(output_buffer, "%sCALL \"rmc_ctod\" USING %s, %s, \"%s\"\n",
845 names[COLUMN],
846 reference->ref_value,
847 s,
848 gpreGlob.sw_cob_dformat);
849 RMC_print_buffer(output_buffer, false);
850 }
851 else
852 {
853 if ((field->fld_dtype == dtype_sql_date) && (strlen(gpreGlob.sw_cob_dformat) != 0))
854 {
855 sprintf(output_buffer, "%sMOVE ZERO TO ISC-TEMP-QUAD-LOW\n", names[COLUMN]);
856 RMC_print_buffer(output_buffer, false);
857 sprintf(output_buffer, "%sMOVE %s TO ISC-TEMP-QUAD-HIGH\n", names[COLUMN], s);
858 RMC_print_buffer(output_buffer, false);
859 sprintf(output_buffer, "%sCALL \"rmc_ctod\" USING %s, ISC-TEMP-QUAD, \"%s\"\n",
860 names[COLUMN], reference->ref_value, gpreGlob.sw_cob_dformat);
861 RMC_print_buffer(output_buffer, false);
862 }
863 else
864 {
865 if ((field->fld_dtype == dtype_sql_time) && (strlen(gpreGlob.sw_cob_dformat) != 0))
866 {
867 sprintf(output_buffer, "%sMOVE ZERO TO ISC-TEMP-QUAD-HIGH\n", names[COLUMN]);
868 RMC_print_buffer(output_buffer, false);
869 sprintf(output_buffer, "%sMOVE %s TO ISC-TEMP-QUAD-LOW\n", names[COLUMN], s);
870 RMC_print_buffer(output_buffer, false);
871 sprintf(output_buffer, "%sCALL \"rmc_ctod\" USING %s, ISC-TEMP-QUAD, \"%s\"\n",
872 names[COLUMN], reference->ref_value, gpreGlob.sw_cob_dformat);
873 RMC_print_buffer(output_buffer, false);
874 }
875 else
876 {
877 if (field->fld_dtype == dtype_cstring)
878 {
879 sprintf(output_buffer, "%sCALL \"rmc_ctos\" USING %s GIVING %s\n",
880 names[COLUMN], s, reference->ref_value);
881 RMC_print_buffer(output_buffer, false);
882 }
883 else
884 {

Callers 4

gen_fetchFunction · 0.70
gen_loopFunction · 0.70
gen_s_startFunction · 0.70
gen_selectFunction · 0.70

Calls 3

RMC_print_bufferFunction · 0.85
gen_nameFunction · 0.70
gen_get_or_put_sliceFunction · 0.70

Tested by

no test coverage detected