Buen dia Javier, muchas gracias por tu ayuda y el script compartido. Me va a servir como ayuda para seguir aprendiendo sobre RODBC pero no encuentro una solucion para este problema puntual de poder definir el tipo y ancho de las variables, q segun creo se hace con el argumento varTypes.
Si alguien tien algun ejemplo donde haya usado la SqlSave y VarTypes, me sera de gran ayuda. Abrazo a todos 2017-07-12 15:33 GMT-03:00 Javier Marcuzzi <[email protected]> : > Estimado José Ramirez Costa > > > > Yo tengo un archivo donde guarde lo que realizaba cuándo aprendía, habría > que ver si actualmente es así o hay cambios, por lo que usted dice creo que > usa sql server, si no es así busco el archivo para otras bases de datos. Si > es sqlserver se podría realizar con la ayuda de visual studio, hay una > integración al respecto. > > > > Le copio y pego la forma que utilicé para aprender, espero que le sea útil. > > > > > > cn <- odbcDriverConnect(connection="Driver={SQL Server Native Client > 11.0}; > > server=localhost; > > database=far; > > trusted_connection=yes;") > > # DESKTOP-HEO7TLB > > cosa <- sqlFetch(cn,'cosa') > > cosa > > > > A <- c(1,2,3,4) > > B <- c(4,5,6,7) > > dat <- data.frame(A,B) > > colnames(dat) <- c("A", "B") > > sqlSave(cn, dat, tablename = "tblTest", rownames=FALSE, append=TRUE) > > > > cosa <- c("auto", "bici", "libro") > > cantidad <- c(2,4,7) > > dat <- data.frame(cosa, cantidad) > > > > colnames(dat) <- c("A", "B") > > sqlSave(cn, dat, tablename = "cosa", > > rownames=FALSE, > > colnames=TRUE, > > append=TRUE, > > addPK=TRUE, > > fast=TRUE) > > > > # http://stackoverflow.com/questions/36202414/r-download-image-using-rvest > > # https://www.r-bloggers.com/parameterized-sql-queries/ > > # https://cran.r-project.org/web/packages/RODBCext/ > vignettes/Parameterized_SQL_queries.html > > > > library(RODBCext) > > filterData <- data.frame('cosa'= c('libros')) > > data <- sqlExecute(cn, "SELECT * FROM prueba WHERE cosa = ?", filterData, > fetch = TRUE) > > if(length(data$id) == 0) > > { > > print ("no hay elementos") > > } else > > { > > print ('hay elementos') > > } > > > > # generar lo que se inserta o actualiza > > id <- 1 > > cosa <- "casa" > > cantidad <- 3 > > valor <- 4.5 > > dfDato <- data.frame(id,cosa, cantidad,valor) > > colnames(dfDato) <- c("id", "cosa","cantidad","valor") > > print(dfDato) > > insertar <- function(dfDato) { > > dfNuevoDato <- data.frame(dfDato$cosa, dfDato$cantidad, dfDato$valor) > > colnames(dfNuevoDato) <- c("cosa","cantidad","valor") > > # Parameterized query > > sqlExecute(cn, "INSERT INTO prueba > > (cosa > > ,cantidad > > ,valor) > > VALUES (?,?,?)", dfNuevoDato) > > print(dfNuevoDato) > > } > > > > # comprobar si existe el id > > filterId <- data.frame('id'= dfDato$id) > > data <- sqlExecute(cn, "SELECT * FROM prueba WHERE id = ?", filterId, > fetch = TRUE) > > if(length(data$id) == 0) > > { > > print ('no existe el id') > > insertar(dfDato) > > }else{ > > print('Existe el id') > > # buscar la palabra si existe > > filterPalabra <- data.frame('cosa'=dfDato$cosa) > > data <- sqlExecute(cn, "SELECT * FROM prueba WHERE cosa like ?", > filterPalabra, fetch = TRUE) > > print(data) > > if(length(data$cosa) > 0) > > { > > print ('existe debo actualizar') > > # query <- "UPDATE cakes SET price = ? WHERE cake = ?" > > query <- "UPDATE prueba > > SET cosa = ? > > ,cantidad = ? > > ,valor = ? > > WHERE id = ?" > > sqlExecute(cn, query, dfDato) > > print(dfDato) > > }else{ > > print ('puedo insertar') > > insertar(dfDato) > > } > > } > > #http://finzi.psych.upenn.edu/R/library/RODBC/html/sqlSave.html > > > > Javier Rubén Marcuzzi > > > > *De: *Jose Ramirez Costa <[email protected]> > *Enviado: *miércoles, 12 de julio de 2017 12:33 > *Para: *r-help-es <[email protected]> > *Asunto: *[R-es] consulta por varTypes de sqlSave en RODBC > > > > Buen dia compañerxs de R, les traigo una pregunta bastante especifica. > > > > En el trabajo me estan requiriendo el uso de SQL, asi q estoy aprendiendo a > > usarlo desde R, con el paquete RODBC. > > > > Mi problema puntual es que al crear una tabla en el servidor SQL a partir > > de un data frame en R (usando la funcion sqlSave) no puedo definir el tipo > > de variables que quiero usar en el data frame. > > > > Segun entiendo esto se deberia poder hacer con el parametro vartypes, pero > > hasta ahora solo he podido cargar un vector q dice el tipo de variables > > (varchar, int, o numeric) pero no he podido indicarle el ancho q tiene cad > > variable. > > > > Esto en SQL se escribiria algo asi: > > [ACTA] int, > > [APENAC] varchar(25), > > [PESONAC] numeric(4,0), > > > > Alguien uso vartypes de esta forma? > > > > Desde ya gracias por el tiempo y un abrazo a todxs. > > > > -- > > "*“Que tudo pesado se torne leve, todo corpo, dançarino, e todo espírito, > > pássaro.” * > > *Nietzsche, "Assim Falou Zaratustra”.* > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > [email protected] > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > -- "*“Que tudo pesado se torne leve, todo corpo, dançarino, e todo espírito, pássaro.” * *Nietzsche, "Assim Falou Zaratustra”.* [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
