It is very easy. You should define your variable connectionString before passing it to get_DB_info().

I.e.:

### ** Examples

connectionString <- WHATEVER_IS_CONNECTIONSTRING

get_DB_info(connectionString)


This would remove your error.

Cheers,

Marcelino.




El 14/03/2018 a las 22:15, martiank...@gmail.com escribió:
Hi Duncan,

could you help me fix this issue, please?

Below is function which creates connection string.

#' Create connection string from function parameters

#'

#' This function defines SQL Server connection string

#' from function parameters.

#' @param datasource Server name

#' @param database Database name

#' @param usr Username

#' @param pwd Password

#' @note If username and password missing or empty \strong{Integrated 
Security=True} is used in connection string instead.

#' @return Connection string

#' @export

#' @examples

#' set_connString("LAPTOP-USER\\SQLEXPRESS", "Database_Name")

set_connString <- function(datasource, database, usr, pwd) {

   ds <- paste("Data Source=", datasource, ";", sep = "")

   db <- paste("Initial Catalog=", database, ";", sep = "")

   if ((missing(usr) & missing(pwd)) || (usr=="" & pwd=="")) {

     last_param <- "Integrated Security=True;MultipleActiveResultSets=True;"

   } else {

     last_param <- paste("Integrated Security=False;", "User Id=", usr, ";", "Password=", pwd, ";", 
"MultipleActiveResultSets=True;", sep = "")

   }

   return(paste('"', ds, db, last_param, '"', sep = ""))

}

This connection string is then passed to get_DB_info function – see below.

How can I fix object ‘connectionString’ not found issue?

Thank you for any of your advice.

Martin

#' Get database info

#'

#' This function retrieves basic info about database defined

#' in SQL Server connection string.

#' @param connectionString Connection string to SQL server

#' @return Returns data.frame and data.table

#' @export

#' @examples

#' get_DB_info(connectionString)

#' @note How to set up SQL Server connection string see \link{set_connString}. 
Be also sure you have a permissions for access to sys.dm_db_index_usage_stats:

#' check it with SELECT * FROM sys.dm_db_index_usage_stats. If not, contact 
your SQL Server admin.

get_DB_info <- function(connectionString) {

   options(scipen=999)

   if (missing(connectionString)) {

     print("Connection string is missing!")

     return("Try it again")

   }

   # connectionString <- connectionString

   pathtocsvloader <- gsub("/","\\\\",paste(system.file(package = 
"RSQLS")[1],"/Loader/csv_to_sql_loader.exe", sep = ""))

   pathtocsvloader <- replace_spaced_words(pathtocsvloader)

   pathtocsvloader <- gsub('.{1}$', '', pathtocsvloader)

   # logic for pathtocsvfiles variable

   pathtocsvfiles <- gsub("/","\\\\",paste(system.file(package = "RSQLS")[1],"/Data/", 
sep = ""))

   if (!endsWith(pathtocsvfiles, "\\")) {

     pathtocsvfiles <- paste(pathtocsvfiles,"\\", sep = "")

   }

   sqltabname <- "tempDBInfo"

   sqltabname <- gsub("\\[|\\]", "", sqltabname)

   if (length(strsplit(sqltabname,"\\.")[[1]]) > 1) {

     sqltabname_prev <- gsub("^[^.]*.", "", sqltabname)

   } else {

     sqltabname_prev <- sqltabname

   }

   sql_tab_name <- paste('"', sqltabname, '"', sep = "") # 
'"dbo.CFTC_Disaggregated_Raw_test"'

   sql_task <- paste('"dbinfo"', sep = "")

   real_pathtocsvfile <- paste('"', pathtocsvfiles, paste(sqltabname_prev, ".csv", sep = 
""),'"', sep = "")

   file_to_be_deleted <- paste(pathtocsvfiles, paste(sqltabname_prev, ".csv", sep = ""), 
sep = "")

   ss <- paste('', pathtocsvloader, " ", connectionString, " ", sql_task, " ", real_pathtocsvfile, " 
", "null", sep = "")

   # Call shell command

   oldw <- getOption("warn")

   options(warn = -1)

   sc <- shell(ss)

   if (file.exists(file_to_be_deleted)){

     out <- data.table::fread(file_to_be_deleted, stringsAsFactors = FALSE, sep = 
"~", fill = TRUE)

   } else{

     options(warn = oldw)

     stop('See the previous messages for more details.')

   }

   # Delete csv file

   if (file.exists(file_to_be_deleted)){

     invisible(file.remove(file_to_be_deleted))

   } else{

     options(warn = oldw)

     stop('See the previous messages for more details.')

   }

   if( sc == 1 ) {

     options(warn = oldw)

     stop('See the previous messages for more details.')

   } else {

     options(warn = oldw)

   }

   return(out)

}

-----Původní zpráva-----
Od: Duncan Murdoch <murdoch.dun...@gmail.com>
Odesláno: 13 March 2018 23:22
Komu: martiank...@gmail.com; r-package-devel-boun...@r-project.org
Kopie: r-package-devel@r-project.org
Předmět: Re: [R-pkg-devel] Weird error message during R CMD Check

On 13/03/2018 4:53 PM,  <mailto:martiank...@gmail.com> martiank...@gmail.com 
wrote:

Hello,
I'm trying to submit my package to CRAN but receiving the following
error message.
object 'connectionString' not found
Your example never defined a variable called connectionString, so you can't 
pass it to a function.

Duncan Murdoch

even if it is parameter of get_DB_info(connectionString) function -
see the function definition below error message.
Please, can you help me to understand what should be fixed in the code
so that I could successfully submit my package to CRAN?
Thanks a lot for any of your help in advance. Best,
Martin
<https://win-builder.r-project.org/incoming_pretest/180313_212715_RSQLS> https://win-builder.r-project.org/incoming_pretest/180313_212715_RSQLS
_16/00
check.log
* checking examples ...
** running examples for arch 'i386' ... ERROR
Running examples in 'RSQLS-Ex.R' failed
The error most likely occurred in:
base::assign(".ptime", proc.time(), pos = "CheckExEnv")
### Name: get_DB_info
### Title: Get database info
### Aliases: get_DB_info
### ** Examples
get_DB_info(connectionString)
Error in paste("", pathtocsvloader, " ", connectionString, " ", sql_task,  :
    object 'connectionString' not found
Calls: get_DB_info -> paste
Execution halted
** running examples for arch 'x64' ... ERROR
Running examples in 'RSQLS-Ex.R' failed
The error most likely occurred in:
base::assign(".ptime", proc.time(), pos = "CheckExEnv")
### Name: get_DB_info
### Title: Get database info
### Aliases: get_DB_info
### ** Examples
get_DB_info(connectionString)
Error in paste("", pathtocsvloader, " ", connectionString, " ", sql_task,  :
    object 'connectionString' not found
Calls: get_DB_info -> paste
Execution halted
* checking PDF version of manual ... OK
* DONE
Status: 2 ERRORs, 3 WARNINGs, 4 NOTEs
------------------------------------ get_DB_info(connectionString)
------------------------------------------------------------
#' Get database info
#'
#' This function retrieves basic info about database defined
#' in SQL Server connection string.
#' @param connectionString Connection string to SQL server
#' @return Returns data.frame and data.table
#' @export
#' @examples
#' get_DB_info(connectionString)
#' @note How to set up SQL Server connection string see
\link{set_connString}. Be also sure you have a permissions for access
to
sys.dm_db_index_usage_stats:
#' check it with SELECT * FROM sys.dm_db_index_usage_stats. If not,
contact your SQL Server admin.
get_DB_info <- function(connectionString) {
    options(scipen=999)
    if (missing(connectionString)) {
      print("Connection string is missing!")
      return("Try it again")
    }
    pathtocsvloader <- gsub("/","\\\\",paste(system.file(package =
"RSQLS")[1],"/Loader/csv_to_sql_loader.exe", sep = ""))
    pathtocsvloader <- replace_spaced_words(pathtocsvloader)
    pathtocsvloader <- gsub('.{1}$', '', pathtocsvloader)
    # logic for pathtocsvfiles variable
    pathtocsvfiles <- gsub("/","\\\\",paste(system.file(package =
"RSQLS")[1],"/Data/", sep = ""))
    if (!endsWith(pathtocsvfiles, "\\")) {
      pathtocsvfiles <- paste(pathtocsvfiles,"\\", sep = "")
    }
    sqltabname <- "tempDBInfo"
    sqltabname <- gsub("\\[|\\]", "", sqltabname)
    if (length(strsplit(sqltabname," <file://.> \\.")[[1]]) > 1) {
      sqltabname_prev <- gsub("^[^.]*.", "", sqltabname)
    } else {
      sqltabname_prev <- sqltabname
    }
    sql_tab_name <- paste('"', sqltabname, '"', sep = "") #
'"dbo.CFTC_Disaggregated_Raw_test"'
    sql_task <- paste('"dbinfo"', sep = "")
    real_pathtocsvfile <- paste('"', pathtocsvfiles,
paste(sqltabname_prev, ".csv", sep = ""),'"', sep = "")
    file_to_be_deleted <- paste(pathtocsvfiles, paste(sqltabname_prev,
".csv", sep = ""), sep = "")
    ss <- paste('', pathtocsvloader, " ", connectionString, " ", sql_task, "
", real_pathtocsvfile, " ", "null", sep = "")
    # Call shell command
    oldw <- getOption("warn")
    options(warn = -1)
    sc <- shell(ss)
    if (file.exists(file_to_be_deleted)){
      out <- data.table::fread(file_to_be_deleted, stringsAsFactors =
FALSE, sep = "~", fill = TRUE)
    } else{
      options(warn = oldw)
      stop('See the previous messages for more details.')
    }
    # Delete csv file
    if (file.exists(file_to_be_deleted)){
      invisible(file.remove(file_to_be_deleted))
    } else{
      options(warn = oldw)
      stop('See the previous messages for more details.')
    }
    if( sc == 1 ) {
      options(warn = oldw)
      stop('See the previous messages for more details.')
    } else {
      options(warn = oldw)
    }
    return(out)
}
---
This email has been checked for viruses by Avast antivirus software.
  <https://www.avast.com/antivirus> https://www.avast.com/antivirus
             [[alternative HTML version deleted]]
______________________________________________
  <mailto:R-package-devel@r-project.org> R-package-devel@r-project.org mailing 
list
  <https://stat.ethz.ch/mailman/listinfo/r-package-devel> 
https://stat.ethz.ch/mailman/listinfo/r-package-devel

        [[alternative HTML version deleted]]

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
.


--
Marcelino de la Cruz Rot
Depto. de Biología y Geología
Física y Química Inorgánica
Universidad Rey Juan Carlos
Móstoles España

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to