in R/R/storedProcedure.R [404:446]
createQuery <- function(connectionString, name, ...)
{
# Get and process params from the stored procedure in the database
#
storedProcParams <- getSprocParams(connectionString = connectionString, name = name)
params <- storedProcParams$inputParams
inList <- c()
if (!is.null(params))
{
for (i in seq_len(nrow(params)))
{
parameter_outer <- params[i,]$Parameter_name
parameter <- gsub('.{6}$', '', parameter_outer)
parameter <- gsub('@','', parameter)
type <- params[i,]$Type
inList <- c(inList,parameter)
}
}
inLabels <- NULL
if (!(length(list(...)) == 1 && is.null(list(...)[[1]])))
{
inLabels <- labels(list(...))
if (!all(inLabels %in% inList))
{
stop("You must provide named arguments that match the parameters in the stored procedure.")
}
}
# add necessary variable declarations and value assignments
#
query <- paste0("exec ", name)
for (p in inList)
{
paramName <- p
query <- paste0(query, " @", paramName, "_outer = ?,")
}
query <- gsub(",$", "", query)
list(query=query, inputParams=inList)
}