📄 dbfunc.cp
字号:
unlink( ff) ; unlink( mf) ; bms_trace("无记录"); return( 1) ; } return( SUCCESS) ;}int DB_search_cid_on_acct( char *acct, char *ps_cid, char *co_cid, char *name ){ EXEC SQL BEGIN DECLARE SECTION; char sAcct[30]; char sPscid[20]; char sCocid[20]; char inName[26]; int flag = -1; EXEC SQL END DECLARE SECTION; char buf[20]; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset(sAcct, 0, sizeof(sAcct)); strcpy( sAcct, acct ); if(strlen(sAcct)==0 ) return( SUCCESS ); memset( sPscid, 0x00, sizeof(sPscid) ); memset( sCocid, 0x00, sizeof(sCocid) ); memset( inName, 0x00, sizeof(inName) ); bms_trace("account = [%s]", sAcct); EXEC SQL SELECt cid INTO :sPscid FROM ps_acc_reg WHERE account = :sAcct; if( sqlca.sqlcode<0 || sqlca.sqlcode == 100) { bms_trace("1 ret = [%d]", sqlca.sqlcode); return sqlca.sqlcode; } bms_trace("cid = [%s]", sPscid); EXEC SQL SELECt name, mcall_id INTO :inName, :flag FROM person_info WHERE cid = :sPscid; if( sqlca.sqlcode<0 || sqlca.sqlcode == 100) { bms_trace("2 ret = [%d]", sqlca.sqlcode); return sqlca.sqlcode; } bms_trace("name = [%s]", inName); memset(buf, 0, sizeof(buf)); strcpy(buf, "签约客户"); AllTrim(inName); sprintf(name, "%s %s", buf, inName); bms_trace("name = [%s]", name); if( sqlca.sqlcode == 0) { strcpy( ps_cid, sPscid ); return 0; } EXEC SQL SELECt cid INTO :sCocid FROM co_acc_reg WHERE account = :sAcct; if( sqlca.sqlcode<0 || sqlca.sqlcode == 100 ) { bms_trace("3 ret = [%d]", sqlca.sqlcode); return sqlca.sqlcode; } bms_trace("cid = [%s]", sPscid); EXEC SQL SELECt unitname INTO :inName FROM co_info WHERE cid = :sCocid; if( sqlca.sqlcode<0 || sqlca.sqlcode == 100 ) { bms_trace("4 ret = [%d]", sqlca.sqlcode); return sqlca.sqlcode; } bms_trace("name = [%s]", inName); strcpy( ps_cid, sPscid ); strcpy( co_cid, sCocid ); return( SUCCESS );}int DB_search_cid_on_ic(short pz_type, char *pz_num, char *ps_cid, char *co_cid , char *name){ EXEC SQL BEGIN DECLARE SECTION; char sNum[30]; char sPscid[20]; char sCocid[20]; short ic_type; char inname[20]; int flag = -1; EXEC SQL END DECLARE SECTION; char buf[20]; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; strcpy( sNum, pz_num ); ic_type = pz_type; if(strlen(sNum)==0 ) return( SUCCESS ); memset( sPscid, 0x00, sizeof(sPscid) ); memset( sCocid, 0x00, sizeof(sCocid) ); memset( inname, 0x00, sizeof(inname) ); EXEC SQL SELECT cid, name, mcall_id INTO :sPscid, :inname, :flag FROM person_info WHERE ic_type = :ic_type AND ic_no=:sNum; if( sqlca.sqlcode<0 || sqlca.sqlcode == 100) return sqlca.sqlcode; memset(buf, 0, sizeof(buf)); switch(flag) { case 1: strcpy(buf, "签约客户"); break; case 0: strcpy(buf, "未签约客户"); break; default: strcpy(buf, "未知状态"); break; } AllTrim(inname); sprintf(name, "%s %s", buf, inname); bms_trace("name = [%s]", name); if( sqlca.sqlcode == 0) { strcpy( ps_cid, sPscid ); return 0; } EXEC SQL SELECT cid INTO :sCocid FROM co_broker_info WHERE ic_type = :ic_type AND ic_no=:sNum; if( sqlca.sqlcode < 0 || sqlca.sqlcode == 100) return sqlca.sqlcode; strcpy( ps_cid, sPscid ); strcpy( co_cid, sCocid ); return( SUCCESS );}int DB_check_bid_scope(char *cid, char *acct, short bid){ EXEC SQL BEGIN DECLARE SECTION ; char sCid[11 + 1]; char AcctNo[30], tmpAcc[30] ; short ibid; EXEC SQL END DECLARE SECTION ; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset(sCid, 0, sizeof(sCid)); strcpy(sCid, cid); memset(AcctNo, 0, sizeof(AcctNo)); strcpy(AcctNo, acct); ibid = bid; EXEC SQL SELECT account INTO :tmpAcc FROM co_acc_reg a, co_boacc_def b WHERE a.cid = b.cid AND a.cid = :sCid AND b.bid = :ibid AND a.account = :AcctNo GROUP BY account; if( sqlca.sqlcode ) { return sqlca.sqlcode; } return SUCCESS;}int DB_Query_Link(char *cid, char *aider, char *aidee){ EXEC SQL BEGIN DECLARE SECTION; char sCid[11 + 1]; char sAider[4 + 1]; char sAidee[4 + 1]; EXEC SQL END DECLARE SECTION; memset(sCid, 0, sizeof(sCid)); strcpy(sCid, cid); sCid[11] = 0; memset(sAider, 0, sizeof(sAider)); strcpy(sAider, aider); sAider[4] = 0; memset(sAidee, 0, sizeof(sAidee)); strcpy(sAidee, aidee); sAidee[4] = 0; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; EXEC SQL SELECT cid INTO :sCid FROM ps_acct_link WHERE cid = :sCid AND aider = :sAider AND aidee = :sAidee; if( sqlca.sqlcode ) { return sqlca.sqlcode; } return SUCCESS;}int DB_update_acct(char *cid, char *account, double amt){ EXEC SQL BEGIN DECLARE SECTION; char sCid[11 + 1]; char sAccount[30 + 1]; double dAmt; EXEC SQL END DECLARE SECTION; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset(sCid, 0, sizeof(sCid)); strcpy(sCid, cid); sCid[11] = 0; memset(sAccount, 0, sizeof(sAccount)); strcpy(sAccount, account); dAmt = amt; EXEC SQL BEGIN TRANSACTION; EXEC SQL UPDATE ps_acc_reg SET limit_amt = limit_amt + :dAmt, limit_num = limit_num + 1 WHERE cid = :sCid AND account = :sAccount; if( sqlca.sqlcode ) { EXEC SQL ROLLBACK TRANSACTION; bms_trace("sqlcode = [%d]", sqlca.sqlcode); return sqlca.sqlcode; } EXEC SQL COMMIT TRANSACTION; return SUCCESS;}int DB_Query_AcctLimit(float *amt, char *cid, char *account){ EXEC SQL BEGIN DECLARE SECTION; char sCid[11 + 1]; char sAccount[30 + 1]; float dAmt; EXEC SQL END DECLARE SECTION; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset(sCid, 0, sizeof(sCid)); strcpy(sCid, cid); sCid[11] = 0; memset(sAccount, 0, sizeof(sAccount)); strcpy(sAccount, account); EXEC SQL SELECT limit_amt INTO :dAmt FROM ps_acc_reg WHERE cid = :sCid AND account = :sAccount; if( sqlca.sqlcode ) { return sqlca.sqlcode; } *amt = dAmt; return SUCCESS;}int DB_query_score(char *score1, char *score2, char *score3, char *account){ EXEC SQL BEGIN DECLARE SECTION; double sScore1; double sScore2; double sScore3; char sAccount[30 + 1]; EXEC SQL END DECLARE SECTION; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset(sAccount, 0, sizeof(sAccount)); strcpy(sAccount, account); EXEC SQL SELECT score1, score2, score3 INTO :sScore1, :sScore2, :sScore3 FROM ps_score WHERE account = :sAccount; if( sqlca.sqlcode ) { return sqlca.sqlcode; } sprintf(score1, "%.2lf", sScore1); sprintf(score2, "%.2lf", sScore2); sprintf(score3, "%.2lf", sScore3); return SUCCESS;}int DB_query_fund(char *name, char *value, char *code){ EXEC SQL BEGIN DECLARE SECTION; char sName[30]; double nValue; char sCode[6 + 1]; EXEC SQL END DECLARE SECTION; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset(sCode, 0, sizeof(sCode)); strcpy(sCode, code); sCode[6] = 0; EXEC SQL SELECT fndname, fndpapval INTO :sName, :nValue FROM cfis_fnd WHERE fndcode = :sCode; if( sqlca.sqlcode ) { return sqlca.sqlcode; } strcpy(name, sName); sprintf(value, "%.4lf", nValue); return SUCCESS;}/* * BOND */int DB_query_bond(char *name, char *value1, char *value2, char *date,char *code){ EXEC SQL BEGIN DECLARE SECTION; char sName[30]; double nValue1; double nValue2; char sCode[12 + 1]; EXEC SQL END DECLARE SECTION; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset(sCode, 0, sizeof(sCode)); strcpy(sCode, code); sCode[12] = 0; EXEC SQL SELECT typname,typpadt,typspr2, typspr1 INTO :sName, :sDate,:nValue1,:nValue2 FROM cbis_typ WHERE typdbno = :sCode; if( sqlca.sqlcode ) { return sqlca.sqlcode; } strcpy(date, sDate); strcpy(name, sName); sprintf(value1, "%.2lf", nValue1); sprintf(value2, "%.2lf", nValue2); return SUCCESS;}/* * PRICE */int DB_query_price(char *d,char *v1,char *v2,char *v3,char *v4,char *v5,char *c){ EXEC SQL BEGIN DECLARE SECTION; char sD[8 + 1]; double nV1; double nV2; double nV3; double nV4; double nV5; char sCode[2 + 1]; EXEC SQL END DECLARE SECTION; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset(sCode, 0, sizeof(sCode)); strcpy(sCode, c); sCode[2] = 0; memset(sD, 0, sizeof(sD)); EXEC SQL SELECT erpdat,erpmidprc,erptt_buy,erptt_sel,erpcs_buy,erpcs_sel INTO :sD,:nV1,:nV2,:nV3,:nV4,:nV5 FROM erp WHERE ERPCCYCOD = :sCode; if( sqlca.sqlcode ) { return sqlca.sqlcode; } strcpy(d, sD); sprintf(v1, "%.5lf", nV1); sprintf(v2, "%.5lf", nV2); sprintf(v3, "%.5lf", nV3); sprintf(v4, "%.5lf", nV4); sprintf(v5, "%.5lf", nV5); return SUCCESS;} /* * RATE:PENDING */int DB_query_rate(char *name,char *value1,char *value2,char *date,char *code){ EXEC SQL BEGIN DECLARE SECTION; char sName[30]; double nValue; char sCode[6 + 1]; EXEC SQL END DECLARE SECTION; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset(sCode, 0, sizeof(sCode)); strcpy(sCode, code); sCode[6] = 0; EXEC SQL SELECT fndname, fndpapval INTO :sName, :nValue FROM rit WHERE fndcode = :sCode; if( sqlca.sqlcode ) { return sqlca.sqlcode; } sprintf(value1, "%.4lf", nValue); return SUCCESS;}int DB_check_broker( char *cid, short bid, int *st){ memset( sCid, '\0', sizeof( sCid)) ; sprintf( sCid, "%s", cid) ; sBid = bid ; EXEC SQL SELECT status INTO :sStatus FROM co_broker_info WHERE cid = :sCid AND bid = :sBid ; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; (*st) = sStatus ; return( SUCCESS) ;}int DB_check_co_pwd( char *cid, short bid, char *cpwd){ memset( sCid, '\0', sizeof( sCid)) ; strcpy( sCid, cid) ; sBid = bid ; EXEC SQL SELECT ppasswd INTO :sPwd FROM co_broker_info WHERE cid = :sCid AND bid = :sBid ; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; sprintf( cpwd, "%s", sPwd) ; return( SUCCESS) ;}int DB_add_broker_err(char *cid,int bid){ EXEC SQL BEGIN DECLARE SECTION ; SQL_BROKER_INFO Sql_Broker; EXEC SQL END DECLARE SECTION ; char today[11]; strcpy(Sql_Broker.cid,cid); Sql_Broker.bid = bid ; EXEC SQL SELECT * INTO :Sql_Broker FROM co_broker_info WHERE cid = :Sql_Broker.cid AND bid = :Sql_Broker.bid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; get_time_ymd("%Y-%m-%d",today); if (strncmp(today,Sql_Broker.err_date,10) == 0)//本日已发生过错误 { Sql_Broker.passdaycurr ++; Sql_Broker.passtotcurr ++; if (Sql_Broker.passdaycurr >=5) EXEC SQL UPDATE co_broker_info SET passdaycurr = :Sql_Broker.passdaycurr , passtotcurr = :Sql_Broker.passtotcurr , status = 6 WHERE cid = :Sql_Broker.cid AND bid = :Sql_Broker.bid; else EXEC SQL UPDATE co_broker_info SET passdaycurr = :Sql_Broker.passdaycurr, passtotcurr = :Sql_Broker.passtotcurr WHERE cid = :Sql_Broker.cid AND bid = :Sql_Broker.bid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; } else { Sql_Broker.passdaycurr = 1 ; Sql_Broker.passtotcurr ++; strcpy(Sql_Broker.err_date,today); EXEC SQL UPDATE co_broker_info SET passdaycurr = :Sql_Broker.passdaycurr,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -