| 3037 | // |
| 3038 | |
| 3039 | static void gen_request( gpre_req* request) |
| 3040 | { |
| 3041 | if (!(request->req_flags & (REQ_exp_hand | REQ_sql_blob_open | REQ_sql_blob_create)) && |
| 3042 | request->req_type != REQ_slice && request->req_type != REQ_procedure) |
| 3043 | { |
| 3044 | printa(names[COLUMN_0], false, "01 %s PIC S9(9) USAGE COMP VALUE IS 0.", request->req_handle); |
| 3045 | } |
| 3046 | |
| 3047 | if (request->req_type == REQ_ready) |
| 3048 | printa(names[COLUMN_0], false, "01 %s%dL PIC S9(4) USAGE %s VALUE IS %d.", |
| 3049 | names[isc_a_pos], request->req_ident, COMP_VALUE, request->req_length); |
| 3050 | |
| 3051 | // check the case where we need to extend the dpb dynamically at runtime, |
| 3052 | // in which case we need dpb length and a pointer to be defined even if |
| 3053 | //there is no static dpb defined |
| 3054 | |
| 3055 | if (request->req_flags & REQ_extend_dpb) |
| 3056 | { |
| 3057 | printa(names[COLUMN_0], false, "01 %s%dP PIC S9(9) USAGE COMP-5 VALUE IS 0.", |
| 3058 | names[isc_a_pos], request->req_ident); |
| 3059 | } |
| 3060 | |
| 3061 | if (request->req_flags & (REQ_sql_blob_open | REQ_sql_blob_create)) |
| 3062 | printa(names[COLUMN_0], false, "01 %s%dS PIC S9(9) USAGE COMP VALUE IS 0.", |
| 3063 | names[isc_a_pos], |
| 3064 | request->req_ident); |
| 3065 | |
| 3066 | // generate the request as BLR long words |
| 3067 | |
| 3068 | if (request->req_length) |
| 3069 | { |
| 3070 | if (request->req_flags & REQ_sql_cursor) |
| 3071 | printa(names[COLUMN_0], false, "01 %s%dS PIC S9(9) USAGE COMP VALUE IS 0.", |
| 3072 | names[isc_a_pos], request->req_ident); |
| 3073 | printa(names[COLUMN_0], false, "01 %s%d.", names[isc_a_pos], request->req_ident); |
| 3074 | gen_raw(request->req_blr, request->req_type, request->req_length, request->req_ident); |
| 3075 | |
| 3076 | const char* string_type; |
| 3077 | if (!gpreGlob.sw_raw) |
| 3078 | { |
| 3079 | printa(names[COMMENT], false, " "); |
| 3080 | printa(names[COMMENT], false, "FORMATTED REQUEST BLR FOR %s%d = ", |
| 3081 | names[isc_a_pos], request->req_ident); |
| 3082 | switch (request->req_type) |
| 3083 | { |
| 3084 | case REQ_create_database: |
| 3085 | case REQ_ready: |
| 3086 | string_type = "DPB"; |
| 3087 | if (PRETTY_print_cdb(request->req_blr, gen_blr, 0, 0)) |
| 3088 | CPR_error("internal error during parameter generation"); |
| 3089 | break; |
| 3090 | |
| 3091 | |
| 3092 | case REQ_ddl: |
| 3093 | string_type = "DYN"; |
| 3094 | if (PRETTY_print_dyn(request->req_blr, gen_blr, 0, 0)) |
| 3095 | CPR_error("internal error during dynamic DDL generation"); |
| 3096 | break; |
no test coverage detected