handleTailParams <- function()

in R/R/storedProcedureScripting.R [113:174]


handleTailParams <- function(inputParams, outputParams)
{
    inDataString <- c()
    outDataString <- c()
    paramString <- c()
    overallParams <- c()

    makeString <- function(name, d, output = "")
    {
        rType <- d[[name]]
        if (tolower(rType) == "dataframe")
        {
            if (output=="")
            {
                c(paste0("@input_data_1 = @", name, "_outer"),
                  paste0("@input_data_1_name = N'", name, "'"))
            }
            else
            {
                c(paste0("@output_data_1_name = N'", name, "'"))
            }
        }
        else
        {
            sqlType <- getSqlType(rType)
            overallParams <<- c(overallParams, paste0("@", name, " ", sqlType, output))
            paste0("@", name, " = ", "@", name, "_outer", output)
        }
    }

    for(name in names(inputParams))
    {
        rType <- inputParams[[name]]
        if (tolower(rType) == "dataframe")
        {
            inDataString <- c(makeString(name, inputParams))
        }
        else
        {
            paramString <- c(paramString, makeString(name, inputParams))
        }
    }
    for(name in names(outputParams))
    {
        rType <- outputParams[[name]]
        if (tolower(rType) == "dataframe")
        {
            outDataString <- c(makeString(name, outputParams, " output"))
        }
        else
        {
            paramString <- c(paramString, makeString(name, outputParams, " output"))
        }
    }
    if (length(overallParams) > 0)
    {
        overallParams <- paste0(overallParams, collapse = ", ")
        overallParams <- paste0("@params = N'" , overallParams,"'")
    }

    return(paste0(c(inDataString, outDataString, overallParams, paramString), collapse = ",\n"))
}