13.07.2015 Views

IBM Flex System x240 w

IBM Flex System x240 w

IBM Flex System x240 w

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C_CREDIT_LIM}else{;COMMIT ;END COMPOUND ;, :c_w_id, :c_d_id, :c_last_input, CAST(:h_amount AS DECIMAL(6,2)), :c_data_prefix_c_last)) AS T ( W_STREET_1, W_STREET_2, W_CITY, W_STATE, W_ZIP, D_STREET_1, D_STREET_2, D_CITY, D_STATE, D_ZIP, C_ID, C_FIRST, C_MIDDLE, C_STREET_1, C_STREET_2, C_CITY, C_STATE, C_ZIP, C_PHONE, C_SINCE, C_CREDIT,EXEC SQL BEGIN COMPOUND NOT ATOMIC STATIC, C_DISCOUNT, C_BALANCE, C_DATA, H_DATE){struct sqlca sqlca ;EXEC SQL BEGIN DECLARE SECTION;struct vc_ord_in{short len ;char data[ 42 ] ;} * in_ord ;struct vc_ord_out{short len ;char data[ 822 ] ;} * out_ord ;EXEC SQL END DECLARE SECTION;int clientRc = TRAN_OK ;int itemIndex = 0 ;in_ord = (struct vc_ord_in *) in_ordstat ;in_ord->len = sizeof(struct in_ordstat_struct) - SPGENERAL_ADJUST ;SELECTW_STREET_1, W_STREET_2, W_CITY, W_STATE, W_ZIP, D_STREET_1, D_STREET_2, D_CITY, D_STATE, D_ZIP, C_LAST, C_FIRST, C_MIDDLE, C_STREET_1, C_STREET_2, C_CITY, C_STATE, C_ZIP, C_PHONE, C_SINCE, C_CREDIT, C_CREDIT_LIM, C_DISCOUNT, C_BALANCE, C_DATA, H_DATEINTO :w_street_1 , :w_street_2 , :w_city , :w_state , :w_zip, :d_street_1 , :d_street_2 , :d_city , :d_state , :d_zip, :c_last, :c_first , :c_middle , :c_street_1 , :c_street_2 ,:c_city , :c_state, :c_zip , :c_phone , :c_since , :c_credit , :c_credit_lim, :c_discount , :c_balance, :c_data :c_data_indicator, :h_dateFROM TABLE ( PAY_C_ID( :w_id, :d_id, :c_w_id, :c_d_id, :in_c_id, CAST(:h_amount AS DECIMAL(6,2)), :c_data_prefix_c_id)C_CREDIT_LIM};COMMIT ;END COMPOUND ;) AS T( W_STREET_1, W_STREET_2, W_CITY, W_STATE, W_ZIP, D_STREET_1, D_STREET_2, D_CITY, D_STATE, D_ZIP, C_LAST, C_FIRST, C_MIDDLE, C_STREET_1, C_STREET_2, C_CITY, C_STATE, C_ZIP, C_PHONE, C_SINCE, C_CREDIT,, C_DISCOUNT, C_BALANCE, C_DATA, H_DATE)#ifdef DEBUGITpay_debug(payment, in_payment, "Client after SQL call");#endif /* DEBUGIT */}if ( sqlca.sqlcode != 0 ){DLCHK( retry_tran ) ;}sqlerror( PAYMENT_SQL , "PAY" , __FILE__, __LINE__ , &sqlca) ;payment->s_transtatus = FATAL_SQLERROR ;clientRc = FATAL_SQLERROR ;pay_debug( payment, in_payment, "PAY failed" ) ;EXEC SQL ROLLBACK WORK ;if ( sqlca.sqlcode != 0 ){sqlerror( PAYMENT_SQL, "ROLLBACK FAILED", __FILE__, __LINE__, &sqlca ) ;}return ( clientRc ) ;// ----------------------------------------------------------------// Order Status CLIENT// ----------------------------------------------------------------int ordstat_sql ( struct in_ordstat_struct * in_ordstat, struct out_ordstat_struct * ordstat)out_ord = (struct vc_ord_out *) ordstat ;out_ord->len = sizeof(struct out_ordstat_struct) - SPGENERAL_ADJUST ;#ifdef DEBUGITord_debug(ordstat, in_ordstat, "Client before SP call");#endif /* DEBUGIT */#ifdef SWAP_ENDIANSWAP_BYTE(in_ordstat->s_C_ID);SWAP_BYTE(in_ordstat->s_W_ID);SWAP_BYTE(in_ordstat->s_D_ID);#endif //SWAP_ENDIANEXEC SQL CALL ords ( :*in_ord, :*out_ord ) ;#ifdef SWAP_ENDIANSWAP_BYTE(in_ordstat->s_C_ID);SWAP_BYTE(in_ordstat->s_W_ID);SWAP_BYTE(in_ordstat->s_D_ID);SWAP_BYTE(ordstat->s_C_BALANCE);SWAP_BYTE(ordstat->s_C_ID);SWAP_BYTE(ordstat->s_O_ID);SWAP_BYTE(ordstat->s_O_CARRIER_ID);SWAP_BYTE(ordstat->s_ol_cnt);SWAP_BYTE(ordstat->s_transtatus);SWAP_BYTE(ordstat->deadlocks);for (itemIndex=0; itemIndexs_ol_cnt; itemIndex++){SWAP_BYTE(ordstat->item[ itemIndex ].s_OL_AMOUNT);SWAP_BYTE(ordstat->item[ itemIndex ].s_OL_I_ID);SWAP_BYTE(ordstat->item[ itemIndex ].s_OL_SUPPLY_W_ID);SWAP_BYTE(ordstat->item[ itemIndex ].s_OL_QUANTITY);}#endif //SWAP_ENDIANif ( sqlca.sqlcode == 0 ){// Propogate the field we already knew into the output structure// 60% of the time, we already knew c_last (input c_id is 0)if ( in_ordstat->s_C_ID == 0 ){memcpy( ordstat->s_C_LAST , in_ordstat->s_C_LAST, sizeof( ordstat->s_C_LAST ) ) ;}else{ordstat->s_C_ID = in_ordstat->s_C_ID ;}}else{sqlerror( ORDSTAT_SQL, "ORD", __FILE__, __LINE__, &sqlca) ;ordstat->s_transtatus = FATAL_SQLERROR ;clientRc = FATAL_SQLERROR ;}#ifdef DEBUGITord_debug(ordstat, in_ordstat, "Client after SP call");#endif /* DEBUGIT */if ( ordstat->s_transtatus

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!