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

Function asgn_to_proc

src/gpre/languages/rmc.cpp:926–995  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

924//
925
926static void asgn_to_proc( const ref* reference)
927{
928 TEXT s[MAX_REF_SIZE];
929
930 for (; reference; reference = reference->ref_next)
931 {
932 if (!reference->ref_value)
933 continue;
934
935 gen_name(s, reference, true);
936 if ((reference->ref_field->fld_dtype == dtype_date) && strlen(gpreGlob.sw_cob_dformat) != 0)
937 {
938 sprintf(output_buffer, "%sCALL \"rmc_ctod\" USING %s, %s, \"%s\"\n",
939 names[COLUMN],
940 reference->ref_value,
941 s,
942 gpreGlob.sw_cob_dformat);
943 RMC_print_buffer(output_buffer, false);
944 }
945 else
946 {
947 if ((reference->ref_field->fld_dtype == dtype_sql_date) && (strlen(gpreGlob.sw_cob_dformat) != 0))
948 {
949 sprintf(output_buffer, "%sMOVE ZERO TO ISC-TEMP-QUAD-LOW\n", names[COLUMN]);
950 RMC_print_buffer(output_buffer, false);
951 sprintf(output_buffer, "%sMOVE %s TO ISC-TEMP-QUAD-HIGH\n", names[COLUMN], s);
952 RMC_print_buffer(output_buffer, false);
953 sprintf(output_buffer, "%sCALL \"rmc_ctod\" USING %s, ISC-TEMP-QUAD, \"%s\"\n",
954 names[COLUMN], reference->ref_value, gpreGlob.sw_cob_dformat);
955 RMC_print_buffer(output_buffer, false);
956 }
957 else
958 {
959 if ((reference->ref_field->fld_dtype == dtype_sql_time) && (strlen(gpreGlob.sw_cob_dformat) != 0))
960 {
961 sprintf(output_buffer, "%sMOVE ZERO TO ISC-TEMP-QUAD-HIGH\n", names[COLUMN]);
962 RMC_print_buffer(output_buffer, false);
963 sprintf(output_buffer, "%sMOVE %s TO ISC-TEMP-QUAD-LOW\n", names[COLUMN], s);
964 RMC_print_buffer(output_buffer, false);
965 sprintf(output_buffer, "%sCALL \"rmc_ctod\" USING %s, ISC-TEMP-QUAD, \"%s\"\n",
966 names[COLUMN], reference->ref_value, gpreGlob.sw_cob_dformat);
967 RMC_print_buffer(output_buffer, false);
968 }
969 else
970 {
971 if (reference->ref_field->fld_dtype == dtype_cstring)
972 {
973 sprintf(output_buffer, "%sCALL \"rmc_ctos\" USING %s GIVING %s\n",
974 names[COLUMN], s, reference->ref_value);
975 RMC_print_buffer(output_buffer, false);
976 }
977 else
978 {
979 if ((reference->ref_field->fld_dtype == dtype_short) ||
980 (reference->ref_field->fld_dtype == dtype_long) ||
981 (reference->ref_field->fld_dtype == dtype_int64))
982 {
983 sprintf(output_buffer, "%sCALL \"rmc_ctob\" USING %s GIVING %s\n",

Callers 1

gen_procedureFunction · 0.70

Calls 2

RMC_print_bufferFunction · 0.85
gen_nameFunction · 0.70

Tested by

no test coverage detected