diff options
| -rw-r--r-- | R/load_cf.R | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/R/load_cf.R b/R/load_cf.R index b4bba964..16a88b7e 100644 --- a/R/load_cf.R +++ b/R/load_cf.R @@ -330,12 +330,13 @@ save(cusipdata, cfdata, file=file.path(save.dir, "cashflows.RData"), sqlstring <- paste0("UPDATE et_deal_model_numbers SET ", "wapbasis = $1 WHERE dealname= $2 AND updatedate = $3") for(dealname in names(cfdata)){ - tryCatch(dbGetQuery(etdb, sqlstring, params = list(cfdata[[dealname]]$wapbasis*100, - dealname, - tradedate)), - error = function(w) { - logerror(w$message) - }) + r <- tryCatch(dbSendQuery(etdb, sqlstring, params = list(cfdata[[dealname]]$wapbasis*100, + dealname, + tradedate)), + error = function(w) { + logerror(w$message) + }) + dbClearResult(r) } ## upload model data @@ -347,7 +348,7 @@ for(cusip in names(cusipdata)){ error = function(w) logerror(w$message)) columns <- c("price", "wal", "duration", "delta", "mvoc", "mvcoverage") values <- cusipdata[[cusip]][match(columns, names(cusipdata[[cusip]]))] - if(nrow(sqldata) && (tradedate %in% as.Date(sqldata$updatedate))){ + if(nrow(sqldata) && (tradedate %in% as.Date(sqldata$updatedate))) { params <- c(values, cusip, as.character(tradedate)) sqlstring <- paste0("UPDATE et_cusip_model_numbers SET price=$1, wal=$2, duration=$3,", "delta=$4, mvoc=$5, mvcoverage=$6 WHERE cusip=$7 and updatedate=$8") @@ -358,26 +359,29 @@ for(cusip in names(cusipdata)){ paste(names(params), collapse=","), paste(paste0("$", 1:length(params)), collapse=",")) } - tryCatch(dbGetQuery(etdb, sqlstring, params=params), - error = function(e) logerror(e$message)) + names(params) <- NULL + r <- tryCatch(dbSendQuery(etdb, sqlstring, params=params), + error = function(e) logerror(e$message)) + dbClearResult(r) identifier <- tryCatch(dbGetQuery(dawndb, "SELECT identifier from securities WHERE cusip=$1", params=list(cusip)), error = function(e) logerror(e$message)) identifier <- if(nrow(identifier)>0) identifier$identifier else NULL - if(!is.null(identifier)){ - if(nrow(sqldata) && (tradedate %in% as.Date(sqldata$updatedate))){ + if(!is.null(identifier)) { + if(nrow(sqldata) && (tradedate %in% as.Date(sqldata$updatedate))) { params <- c(values[1:4], identifier, as.character(tradedate)) sqlstring <- paste0("UPDATE risk_numbers SET model_price=$1, wal=$2, duration=$3,", "index_delta='HY',delta=$4 WHERE identifier=$5 and date=$6") - }else{ + } else { sqlstring <- paste0("INSERT INTO risk_numbers(identifier, date, index_delta,", "model_price, wal, duration, delta) ", "VALUES($1, $2, $3, $4, $5, $6, $7)") params <- c(identifier, as.character(tradedate), 'HY', values[1:4]) } - tryCatch(dbGetQuery(dawndb, sqlstring, params=params), - error = function(w) logerror(w$message)) + r <- tryCatch(dbSendQuery(dawndb, sqlstring, params=params), + error = function(w) logerror(w$message)) + dbClearResult(r) } } dbDisconnect(dawndb) |
