| 825 | // |
| 826 | |
| 827 | static 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 | { |
no test coverage detected