RODBC - Почему мой запрос на обновление не работает? - PullRequest
0 голосов
/ 08 марта 2019

Я читаю в файле .csv и сравниваю два поля, одно в таблице с именем "Col" и одно в файле .csv с именем "newdata".Если они совпадают, я перезаписываю item_price в таблице «COL» значением avg_price в «newdata».Я не получаю ошибок, но в COL ничего не меняется.

library(RODBC)
db <- "C:/Projects/Online.accdb"
conn <- odbcConnectAccess2007(db) 
newData <- read.csv("C:/Projects/duplicates.csv", stringsAsFactors = F)
for(row in 1:nrow(newData)){
  query <- paste0(
    "UPDATE COL 
    SET item_price = ",newData$avg_price[row], 
    "WHERE COL.generic ='",newData$generic[row],"'"  
    )
   sqlQuery(conn, query)
}
close(conn)

1 Ответ

1 голос
/ 08 марта 2019

Из комментариев предложите исправление ниже, которое изменит имена столбцов входного файла в соответствии с именами запроса:

library(RODBC)
db <- "C:/Projects/Online.accdb"
conn <- odbcConnectAccess2007(db) 
newData <- read.csv("C:/Projects/duplicates.csv", stringsAsFactors = F)
names(newData) <- c("generic","avg_price")
for(row in 1:nrow(newData)){
  query <- paste0("UPDATE COL SET item_price = ",newData$avg_price[row]," WHERE COL.generic ='",newData$generic[row],"'")
   sqlQuery(conn, query)
}
close(conn)
...