public void insertChejanOrder(TB_CHEJAN_ORDER tmp) { using (var conn = new NpgsqlConnection(Config.GetDbConnStr())) { try { conn.Open(); String sql = @"insert into tb_chejan_order ( curr_time , order_num , acct_num , stock_cd , order_business_classification , order_status , order_qty , order_amt , not_contract_qty , contract_tot_amt , ongn_order_num , order_gubun , trade_gubun , order_type , contract_num , contract_amt , contract_qty , curr_amt , offered_amt , bid_amt , contract_amt_unit , contract_amt_qty , today_commission , screen_num , terminal_num , credit_gubun , loan_dt , crt_dtm ) values ( @p_curr_time , @p_order_num , @p_acct_num , @p_stock_cd , @p_order_business_classification , @p_order_status , @p_order_qty , @p_order_amt , @p_not_contract_qty , @p_contract_tot_amt , @p_ongn_order_num , @p_order_gubun , @p_trade_gubun , @p_order_type , @p_contract_num , @p_contract_amt , @p_contract_qty , @p_curr_amt , @p_offered_amt , @p_bid_amt , @p_contract_amt_unit , @p_contract_amt_qty , @p_today_commission , @p_screen_num , @p_terminal_num , @p_credit_gubun , @p_loan_dt , now() )" ; using (var cmd = new NpgsqlCommand(sql, conn)) { //cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@p_curr_time", NpgsqlTypes.NpgsqlDbType.Text, tmp.curr_time); cmd.Parameters.AddWithValue("@p_order_num", NpgsqlTypes.NpgsqlDbType.Text, tmp.order_num); cmd.Parameters.AddWithValue("@p_acct_num", NpgsqlTypes.NpgsqlDbType.Text, tmp.acct_num); cmd.Parameters.AddWithValue("@p_stock_cd", NpgsqlTypes.NpgsqlDbType.Text, tmp.stock_cd); cmd.Parameters.AddWithValue("@p_order_business_classification", NpgsqlTypes.NpgsqlDbType.Text, tmp.order_business_classification); cmd.Parameters.AddWithValue("@p_order_status", NpgsqlTypes.NpgsqlDbType.Text, tmp.order_status); cmd.Parameters.AddWithValue("@p_order_qty", NpgsqlTypes.NpgsqlDbType.Integer, tmp.order_qty); cmd.Parameters.AddWithValue("@p_order_amt", NpgsqlTypes.NpgsqlDbType.Integer, tmp.order_amt); cmd.Parameters.AddWithValue("@p_not_contract_qty", NpgsqlTypes.NpgsqlDbType.Integer, tmp.not_contract_qty); cmd.Parameters.AddWithValue("@p_contract_tot_amt", NpgsqlTypes.NpgsqlDbType.Integer, tmp.contract_tot_amt); cmd.Parameters.AddWithValue("@p_ongn_order_num", NpgsqlTypes.NpgsqlDbType.Text, tmp.ongn_order_num); cmd.Parameters.AddWithValue("@p_order_gubun", NpgsqlTypes.NpgsqlDbType.Text, tmp.order_gubun); cmd.Parameters.AddWithValue("@p_trade_gubun", NpgsqlTypes.NpgsqlDbType.Text, tmp.trade_gubun); cmd.Parameters.AddWithValue("@p_order_type", NpgsqlTypes.NpgsqlDbType.Integer, tmp.order_type); cmd.Parameters.AddWithValue("@p_contract_num", NpgsqlTypes.NpgsqlDbType.Text, tmp.contract_num); cmd.Parameters.AddWithValue("@p_contract_amt", NpgsqlTypes.NpgsqlDbType.Integer, tmp.contract_amt); cmd.Parameters.AddWithValue("@p_contract_qty", NpgsqlTypes.NpgsqlDbType.Integer, tmp.contract_qty); cmd.Parameters.AddWithValue("@p_curr_amt", NpgsqlTypes.NpgsqlDbType.Integer, tmp.curr_amt); cmd.Parameters.AddWithValue("@p_offered_amt", NpgsqlTypes.NpgsqlDbType.Integer, tmp.offered_amt); cmd.Parameters.AddWithValue("@p_bid_amt", NpgsqlTypes.NpgsqlDbType.Integer, tmp.bid_amt); cmd.Parameters.AddWithValue("@p_contract_amt_unit", NpgsqlTypes.NpgsqlDbType.Integer, tmp.contract_amt_unit); cmd.Parameters.AddWithValue("@p_contract_amt_qty", NpgsqlTypes.NpgsqlDbType.Integer, tmp.contract_amt_qty); cmd.Parameters.AddWithValue("@p_today_commission", NpgsqlTypes.NpgsqlDbType.Integer, tmp.today_commission); cmd.Parameters.AddWithValue("@p_screen_num", NpgsqlTypes.NpgsqlDbType.Text, tmp.screen_num); cmd.Parameters.AddWithValue("@p_terminal_num", NpgsqlTypes.NpgsqlDbType.Text, tmp.terminal_num); cmd.Parameters.AddWithValue("@p_credit_gubun", NpgsqlTypes.NpgsqlDbType.Text, tmp.credit_gubun); cmd.Parameters.AddWithValue("@p_loan_dt", NpgsqlTypes.NpgsqlDbType.Text, tmp.loan_dt); cmd.ExecuteNonQuery(); } } catch (Exception ex) { FileLog.PrintF("[insertChejanOrder]Exception ex=" + ex.Message); //{ "42883: insert_tb_stock(p_market_cd => text, p_stock_cd => text, p_stock_nm => text, p_stock_dt => text, p_cnt => integer, p_last_price => text, p_stock_state => text, p_construction => text) 이름의 함수가 없음"} // Message "42601: 구문 오류, 입력 끝부분" string } } }
public override void ReceivedData(AxKHOpenAPI axKHOpenAPI, _DKHOpenAPIEvents_OnReceiveChejanDataEvent e) { /*주문체결 * 9201 계좌번호 * 9203 주문번호 * 9205 관리자사번 * 9001 종목코드, 업종코드 * 912 주문업무분류(JJ: 주식주문, FJ: 선물옵션, JG: 주식잔고, FG: 선물옵션잔고) * 913 주문상태(10:원주문, 11:정정주문, 12:취소주문, 20:주문확인, 21:정정확인, 22:취소확인, 90 - 92:주문거부) * 302 종목명 * 900 주문수량 * 901 주문가격 * 902 미체결수량 * 903 체결누계금액 * 904 원주문번호 * 905 주문구분(+현금내수, -현금매도…) * 906 매매구분(보통, 시장가…) * 907 매도수구분(1:매도, 2:매수) * 908 주문 / 체결시간(HHMMSSMS) * 909 체결번호 * 910 체결가 * 911 체결량 * 10 현재가, 체결가, 실시간종가 * 27(최우선)매도호가 * 28(최우선)매수호가 * 914 단위체결가 * 915 단위체결량 * 938 당일매매 수수료 * 939 당일매매세금 */ FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 구분 : 주문접수--통보"); FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문/체결시간=>" + axKHOpenAPI.GetChejanData(908)); //[0] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 계좌번호=>" + axKHOpenAPI.GetChejanData(9201)); //[1] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문번호=>" + axKHOpenAPI.GetChejanData(9203)); //[2] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 관리자사번=>" + axKHOpenAPI.GetChejanData(9205)); //[3] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 종목코드, 업종코드=>" + axKHOpenAPI.GetChejanData(9001)); //[4] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문업무분류=>" + axKHOpenAPI.GetChejanData(912)); //[5] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문상태=>" + axKHOpenAPI.GetChejanData(913)); //[6] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 종목명=>" + axKHOpenAPI.GetChejanData(302)); //[7] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문수량=>" + axKHOpenAPI.GetChejanData(900)); //[8] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문가격=>" + axKHOpenAPI.GetChejanData(901)); //[9] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 미체결수량=>" + axKHOpenAPI.GetChejanData(902)); //[10] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결누계금액=>" + axKHOpenAPI.GetChejanData(903)); //[11] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 원주문번호=>" + axKHOpenAPI.GetChejanData(904)); //[12] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문구분(+현금내수, -현금매도…)=>" + axKHOpenAPI.GetChejanData(905)); //[13] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매매구분(보통, 시장가…)=>" + axKHOpenAPI.GetChejanData(906)); //[14] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매도수구분(1:매도, 2:매수)" + axKHOpenAPI.GetChejanData(907)); //[15] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결번호" + axKHOpenAPI.GetChejanData(909)); //[16] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결가=>" + axKHOpenAPI.GetChejanData(910)); //[17] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 체결량=>" + axKHOpenAPI.GetChejanData(911)); //[18] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 현재가, 체결가, 실시간종가=>" + axKHOpenAPI.GetChejanData(10)); //[19] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매도호가=>" + axKHOpenAPI.GetChejanData(27)); //[20] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData (최우선)매수호가=>" + axKHOpenAPI.GetChejanData(28)); //[21] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 단위체결가=>" + axKHOpenAPI.GetChejanData(914)); //[22] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 단위체결량=>" + axKHOpenAPI.GetChejanData(915)); //[23] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일매매 수수료=>" + axKHOpenAPI.GetChejanData(938)); //[24] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 당일매매세금=>" + axKHOpenAPI.GetChejanData(939)); //[25] /*카페 정보아래는 확인이 필요*/ FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 화면번호=>" + axKHOpenAPI.GetChejanData(920)); //[26] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 터미널번호=>" + axKHOpenAPI.GetChejanData(921)); //[27] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 신용구분=>" + axKHOpenAPI.GetChejanData(922)); //[28] FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 대출일=>" + axKHOpenAPI.GetChejanData(923)); //[29] /*추가적인 기록--주문에서 아래 데이터가 나오나 ??*/ /* 안나온다. * FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 거부사유=>" + axKHOpenAPI.GetChejanData(919)); //[29] * FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 보유수량=>" + axKHOpenAPI.GetChejanData(930)); //[29] * FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 매입단가=>" + axKHOpenAPI.GetChejanData(931)); //[29] * FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 총매입가=>" + axKHOpenAPI.GetChejanData(932)); //[29] * FileLog.PrintF("axKHOpenAPI_OnReceiveChejanData 주문가능수량=>" + axKHOpenAPI.GetChejanData(933)); //[29] */ TB_CHEJAN_ORDER order_Data = new TB_CHEJAN_ORDER(); order_Data.curr_time = axKHOpenAPI.GetChejanData(908).ToString().Trim(); order_Data.acct_num = axKHOpenAPI.GetChejanData(9201).ToString().Trim(); //[1] order_Data.order_num = axKHOpenAPI.GetChejanData(9203).ToString().Trim(); //[2] order_Data.stock_cd = axKHOpenAPI.GetChejanData(9001).ToString().Trim(); //[4] order_Data.order_business_classification = axKHOpenAPI.GetChejanData(912).ToString().Trim(); //[5] order_Data.order_status = axKHOpenAPI.GetChejanData(913).ToString().Trim(); //[6] order_Data.order_qty = int.Parse(axKHOpenAPI.GetChejanData(900).ToString().Trim()); //[8] order_Data.order_amt = int.Parse(axKHOpenAPI.GetChejanData(901).ToString().Trim()); //[9] order_Data.not_contract_qty = int.Parse(axKHOpenAPI.GetChejanData(902).ToString().Trim()); //[10] order_Data.contract_tot_amt = int.Parse(axKHOpenAPI.GetChejanData(903).ToString().Trim()); //[11] order_Data.ongn_order_num = axKHOpenAPI.GetChejanData(904).ToString().Trim(); //[12] order_Data.order_gubun = axKHOpenAPI.GetChejanData(905).ToString().Trim(); //[13] order_Data.trade_gubun = axKHOpenAPI.GetChejanData(906).ToString().Trim(); //[14] order_Data.order_type = int.Parse(axKHOpenAPI.GetChejanData(907).ToString().Trim()); //[15] order_Data.contract_num = axKHOpenAPI.GetChejanData(909).ToString().Trim(); //[16] String str체결가 = axKHOpenAPI.GetChejanData(910).ToString().Trim(); //[17] order_Data.contract_amt = 0; if (!str체결가.Equals("")) { order_Data.contract_amt = int.Parse(str체결가); } String str체결량 = axKHOpenAPI.GetChejanData(911).ToString().Trim();//[18] order_Data.contract_qty = 0; if (!str체결량.Equals("")) { order_Data.contract_qty = int.Parse(str체결량); } order_Data.curr_amt = int.Parse(axKHOpenAPI.GetChejanData(10).ToString().Trim()); //[19] order_Data.offered_amt = int.Parse(axKHOpenAPI.GetChejanData(27).ToString().Trim()); //[20] order_Data.bid_amt = int.Parse(axKHOpenAPI.GetChejanData(28).ToString().Trim()); //[21] String str단위체결가 = axKHOpenAPI.GetChejanData(914).ToString().Trim(); //[22] order_Data.contract_amt_unit = 0; if (!str단위체결가.Equals("")) { order_Data.contract_amt_unit = int.Parse(str단위체결가); } String str단위체결량 = axKHOpenAPI.GetChejanData(915).ToString().Trim(); //[23] order_Data.contract_amt_qty = 0; if (!str단위체결량.Equals("")) { order_Data.contract_amt_qty = int.Parse(str단위체결량); } order_Data.today_commission = int.Parse(axKHOpenAPI.GetChejanData(938).ToString().Trim()); //[24] order_Data.today_tax = int.Parse(axKHOpenAPI.GetChejanData(939).ToString().Trim()); //[25] order_Data.screen_num = axKHOpenAPI.GetChejanData(920).ToString().Trim(); //[25] order_Data.terminal_num = axKHOpenAPI.GetChejanData(921).ToString().Trim(); //[25] order_Data.credit_gubun = axKHOpenAPI.GetChejanData(922).ToString().Trim(); //[25] order_Data.loan_dt = axKHOpenAPI.GetChejanData(923).ToString().Trim(); //[25] ChejanData chejanData = new ChejanData(); chejanData.insertChejanOrder(order_Data); }