📄 dbfunc.cp
字号:
passtotcurr = :Sql_Broker.passtotcurr, err_date = :Sql_Broker.err_date WHERE cid = :Sql_Broker.cid AND bid = :Sql_Broker.bid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; } return( SUCCESS) ;}int DB_reset_broker_err(char *cid,short 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) { if (Sql_Broker.passdaycurr ==0) return (SUCCESS) ; Sql_Broker.passdaycurr =0; EXEC SQL UPDATE co_broker_info SET passdaycurr = :Sql_Broker.passdaycurr, status=1 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 = 0 ; strcpy(Sql_Broker.err_date,today); EXEC SQL UPDATE co_broker_info SET passdaycurr = :Sql_Broker.passdaycurr, err_date = :Sql_Broker.err_date, status=1 WHERE cid = :Sql_Broker.cid and bid = :Sql_Broker.bid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; } return( SUCCESS) ;}int DB_search_ps_acc_info( PS_ACCINFO *pS_aCcinfo){ EXEC SQL BEGIN DECLARE SECTION ; SQL_PS_ACCINFO *pSql ; EXEC SQL END DECLARE SECTION ; pSql = ( SQL_PS_ACCINFO *)pS_aCcinfo ; EXEC SQL SELECT * INTO :pSql FROM ps_accinfo WHERE cid = :pSql->cid ; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; return SUCCESS;}int DB_add_ps_err(char *cid){ EXEC SQL BEGIN DECLARE SECTION; SQL_PS_ACCINFO Sql_Acc; EXEC SQL END DECLARE SECTION ; char today[11]; strcpy(Sql_Acc.cid,cid); EXEC SQL SELECT * INTO :Sql_Acc FROM ps_accinfo WHERE cid = :Sql_Acc.cid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; get_time_ymd("%Y-%m-%d",today); if (strncmp(today,Sql_Acc.err_date,10) == 0) { Sql_Acc.passdaycurr ++; Sql_Acc.passtotcurr ++; if (Sql_Acc.passdaycurr >=5) EXEC SQL UPDATE ps_accinfo SET passdaycurr = :Sql_Acc.passdaycurr, passtotcurr = :Sql_Acc.passtotcurr , status = 6 WHERE cid = :Sql_Acc.cid; else EXEC SQL UPDATE ps_accinfo SET passdaycurr = :Sql_Acc.passdaycurr, passtotcurr = :Sql_Acc.passtotcurr WHERE cid = :Sql_Acc.cid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; } else { Sql_Acc.passdaycurr = 1 ; Sql_Acc.passtotcurr ++; strcpy(Sql_Acc.err_date,today); EXEC SQL UPDATE ps_accinfo SET passdaycurr = :Sql_Acc.passdaycurr, passtotcurr = :Sql_Acc.passtotcurr, err_date = :Sql_Acc.err_date WHERE cid = :Sql_Acc.cid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; } return( SUCCESS) ;}int DB_reset_ps_err(char *cid){ EXEC SQL BEGIN DECLARE SECTION; SQL_PS_ACCINFO Sql_Acc; EXEC SQL END DECLARE SECTION ; char today[11]; strcpy(Sql_Acc.cid,cid); EXEC SQL SELECT * INTO :Sql_Acc FROM ps_accinfo WHERE cid = :Sql_Acc.cid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; get_time_ymd("%Y-%m-%d",today); if (strncmp(today,Sql_Acc.err_date,10) == 0) { if (Sql_Acc.passdaycurr ==0) return (SUCCESS) ; Sql_Acc.passdaycurr =0; EXEC SQL UPDATE ps_accinfo SET passdaycurr = :Sql_Acc.passdaycurr, status=1 WHERE cid = :Sql_Acc.cid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; } else { Sql_Acc.passdaycurr = 0 ; strcpy(Sql_Acc.err_date,today); EXEC SQL UPDATE ps_accinfo SET passdaycurr = :Sql_Acc.passdaycurr, err_date = :Sql_Acc.err_date, status=1 WHERE cid = :Sql_Acc.cid; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; if ( sqlca.sqlcode == SQLNOTFOUND ) return( FAILURE) ; } return( SUCCESS) ;}int DB_search_ps_acct_by_tail(char *account, char *cid, char *tail){ EXEC Sql BEGIN DECLARE SECTION; char acct_like[56]; char acct[30]; char pCid[11 + 1]; EXEC SQL END DECLARE SECTION; memset(acct_like, 0, sizeof(acct_like)); sprintf(acct_like,"%s%s","%", tail); memset(pCid, 0, sizeof(pCid)); strcpy(pCid, cid); memset(acct, 0, sizeof(acct)); EXEC SQL SELECT account INTO :acct FROM ps_acc_reg WHERE cid = :pCid AND account LIKE :acct_like ; if ( sqlca.sqlcode == SQLNOTFOUND || sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; AllTrim(acct); strcpy(account, acct); return( SUCCESS );}int DB_search_co_acct_by_tail(char *account, char *cid, char *tail){ EXEC SQL BEGIN DECLARE SECTION; char acct_like[56]; char acct[30]; char pCid[11 + 1]; EXEC SQL END DECLARE SECTION; memset(acct_like, 0, sizeof(acct_like)); sprintf(acct_like,"%s%s","%", tail); memset(pCid, 0, sizeof(pCid)); strcpy(pCid, cid); memset(acct, 0, sizeof(acct)); EXEC SQL SELECT account INTO :acct FROM co_acc_reg WHERE cid = :pCid AND account like :acct_like ; if ( sqlca.sqlcode == SQLNOTFOUND || sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; AllTrim(acct) ; strcpy(account, acct); return( SUCCESS );}int DB_search_co_acct_by_bid(char *cid, short bid, char *account){ EXEC SQL BEGIN DECLARE SECTION; char Cid[11 + 1]; short Bid; char Acct[30]; char tmp[30]; EXEC SQL END DECLARE SECTION; memset(Cid, 0, sizeof(Cid)); strcpy(Cid, cid); Bid = bid; memset(Acct, 0, sizeof(Acct)); strcpy(Acct, account); memset(tmp, 0, sizeof(tmp)); EXEC SQL SELECT a.account INTO :tmp FROM co_acc_reg a, co_boacc_def b WHERE a.cid = :Cid and (a.cid = b.cid ) and b.bid = :Bid and a.aid = b.aid and a.account = :Acct; if ( sqlca.sqlcode == SQLNOTFOUND || sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; return( SUCCESS );}int DB_delete_account(char *cid, char *account){ EXEC SQL BEGIN DECLARE SECTION; char Cid[11 + 1]; char Acct[30]; EXEC SQL END DECLARE SECTION; memset(Cid, 0, sizeof(Cid)); strcpy(Cid, cid); memset(Acct, 0, sizeof(Acct)); strcpy(Acct, account); EXEC SQL DELETE FROM ps_acc_link WHERE cid = :Cid AND link = :Acct; if( sqlca.sqlcode ) return sqlca.sqlcode; return SUCCESS;}int DB_account_exists(char *account){ EXEC SQL BEGIN DECLARE SECTION; char Acct[30]; char tmp[30]; EXEC SQL END DECLARE SECTION; memset(Acct, 0, sizeof(Acct)); strcpy(Acct, account); memset(tmp, 0, sizeof(tmp)); EXEC SQL SELECT account INTO :tmp FROM ps_acc_reg WHERE account = :Acct; if ( sqlca.sqlcode == SQLNOTFOUND ) return SUCCESS; return sqlca.sqlcode;}int DB_seek_ps_info(char *name, short pz_type, char *pz_num, char *cid){ EXEC SQL BEGIN DECLARE SECTION; char pName[30]; short type; char id[20]; char Cid[11 +1]; EXEC SQL END DECLARE SECTION; memset(Cid, 0, sizeof(Cid)); strcpy(Cid, cid); memset(pName, 0, sizeof(pName)); memset(id, 0, sizeof(id)); EXEC SQL SELECT name, ic_type, ic_no INTO :pName, :type, :id FROM person_info WHERE cid = :Cid; if( sqlca.sqlcode ) return sqlca.sqlcode; AllTrim(pName); strcpy(name, pName); pz_type = type; AllTrim(id); strcpy(pz_num, id); return 0;}int DB_search_transfer_account(char *name, char *account, char *cid, char *inacc, char *tail){ EXEC Sql BEGIN DECLARE SECTION; char acct_like[56]; char acct[30]; char inAcc[30]; char pCid[11 + 1]; char Name[60]; EXEC SQL END DECLARE SECTION; memset(acct_like, 0, sizeof(acct_like)); sprintf(acct_like,"%s%s","%", tail); memset(pCid, 0, sizeof(pCid)); strcpy(pCid, cid); memset(inAcc, 0, sizeof(inAcc)); strcpy(inAcc, inacc); memset(acct, 0, sizeof(acct)); EXEC SQL SELECT name, link INTO :Name, :acct FROM ps_acc_link WHERE cid = :pCid AND account = :inAcc AND link LIKE :acct_like ; if ( sqlca.sqlcode == SQLNOTFOUND || sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; AllTrim(Name); strcpy(name, Name); AllTrim(acct); strcpy(account, acct); return( SUCCESS );}int DB_seek_acc_link(int *rowcount, char *cid, char *filename){ EXEC SQL BEGIN DECLARE SECTION; SQL_PS_ACC_LINK pSql ; char sqlstmt[1024]; EXEC SQL END DECLARE SECTION; FILE *fp ; char orgfile[128]; int errcode ; int rn = 0; EXEC SQL WHENEVER SQLERROR CALL error_handler() ; EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ; EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ; memset((char *)&pSql, 0, sizeof(SQL_PS_ACC_LINK)); memset(orgfile, 0, sizeof(orgfile)); sprintf( orgfile, "%s/tmp/%s",getenv("HOME"),filename); if( (fp=fopen( orgfile, "wb+")) == NULL) return FAILURE; memset( sCid, 0, sizeof(sCid)) ; strcpy( sCid, cid) ; memset(sqlstmt, 0, sizeof(sqlstmt)); sprintf( sqlstmt, "SELECT * FROM ps_acc_link WHERE cid = ? "); EXEC SQL PREPARE cur_link FROM :sqlstmt ; if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ; EXEC SQL DECLARE cur_link CURSOR FOR cur_link; EXEC SQL OPEN cur_link USING :sCid; while(1) { memset( (char *)&pSql, '\0', sizeof( pSql)) ; EXEC SQL FETCH cur_link INTO :pSql ; if ( sqlca.sqlcode < 0 ) { bms_trace("fetch = [%d]", sqlca.sqlcode); EXEC SQL CLOSE cur_link ; fclose(fp) ; unlink(orgfile ) ; return FAILURE ; } if ( sqlca.sqlcode == 100) break ; rn ++ ; AllTrim( pSql.link) ; AllTrim( pSql.name) ; fprintf(fp, "%d|%s|%s|\n", rn, pSql.name, pSql.link); } EXEC SQL CLOSE cur_link ; fclose( fp) ; *rowcount = rn; return( SUCCESS) ;}int DB_seek_limit(double *aggr_amt, double *max_limit, char *cid, char *account){ EXEC SQL BEGIN DECLARE SECTION; char Cid[11 + 1]; char Account[30]; double Aggr_amt; double Max_limit; EXEC SQL END DECLARE SECTION; memset(Cid, 0, sizeof(Cid)); strcpy(Cid, cid); memset(Account, 0, sizeof(Account)); strcpy(Account, account); EXEC SQL SELECT limit_amt, max_limit_amt INTO :Aggr_amt, :Max_limit FROM ps_acc_reg WHERE cid = :Cid AND account = :Account; if( sqlca.sqlcode != 0 ) return sqlca.sqlcode; *aggr_amt = Aggr_amt; *max_limit = Max_limit; return SUCCESS;}int DB_update_agrr_amt(char *cid, char *account, double amt){ EXEC SQL BEGIN DECLARE SECTION; char Cid[11 + 1]; char Account[30]; double Aggr_amt; EXEC SQL END DECLARE SECTION; memset(Cid, 0, sizeof(Cid)); strcpy(Cid, cid); memset(Account, 0, sizeof(Account)); strcpy(Account, account); Aggr_amt = amt; EXEC SQL UPDATE ps_acc_reg SET limit_amt = limit_amt + :Aggr_amt WHERE cid = :Cid AND account = :Account; /*if( sqlca.sqlcode ) return sqlca.sqlcode;*/ if ( sqlca.sqlcode < 0 || sqlca.sqlerrd[ 2] == 0 ) { bms_trace("sqlca.sqlerrd[%d]",sqlca.sqlerrd[2]); return( sqlca.sqlcode); } return SUCCESS;}int DB_search_blist(char *caller, short *flag){ EXEC SQL BEGIN DECLARE SECTION; char phone[50]; char tmp[50]; EXEC SQL END DECLARE SECTION; memset(phone, 0, sizeof(phone)); strcpy(phone, caller); memset(tmp, 0, sizeof(tmp)); EXEC SQL SELECT semail INTO :tmp FROM tb_agent_blist WHERE semail = :phone; fprintf(stdout, "[%s] sqlcode = [%d]\n", phone, sqlca.sqlcode); if( sqlca.sqlcode < 0 ) return sqlca.sqlcode; if( sqlca.sqlcode == 100 ) { *flag = 0; } else { *flag = 1; } return SUCCESS;}int DB_search_person_info(int type, char *sonsign_no, char *cid){EXEC SQL BEGIN DECLARE SECTION; char account[30]; char pCid[17]; char sonsign[32];EXEC SQL END DECLARE SECTION; memset(sonsign, '\0', sizeof(sonsign)); memset(pCid, '\0', sizeof(pCid)); strcpy(sonsign, sonsign_no); switch(type) { case 1: strcpy(pCid, sonsign_no); break; case 2:EXEC SQL SELECT cid INTO :pCid FROM ps_acc_reg WHERE account = :sonsign; if( sqlca.sqlcode < 0 ) return sqlca.sqlcode; if( sqlca.sqlcode == 100 ) { return FAILURE; } break; case 3:EXEC SQL SELECT cid INTO :pCid FROM person_info WHERE ic_no = :sonsign; if( sqlca.sqlcode < 0 ) return sqlca.sqlcode; if( sqlca.sqlcode == 100 ) return FAILURE; break; default: return FAILURE; break; } pub_trim(pCid);strcpy(cid, pCid);return SUCCESS;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -