SQL and r ”update fields”

Viewed 33

SQL and r ”update fields” Can anyone help Me.? i am trying to update fields in a row in a table on a sql server. I have tried to send a vector with that contains the data I want to update(new_d), but I get an error every time I try to send the object with sql query. If I hardcode it, it works fine and the update goes through to the server. what goes wrong when it does not want to send the object and what does it take to make it work? so it can save the update to the server Hope anyone can show me what i do worng.

library(tidyverse)
library(readxl)
library(DT)
library(RODBC)
library(DBI)
library(odbc)
library(dbplyr)


# Connection is working ---------------------------------------------------



    conn <- dbConnect(odbc(), 
                  Driver = "ODBC Driver 13 for SQL Server",
                  Server = "IP, PORT",
                  Database = "DBNAME",
                  UID = "USERNAME",
                  PWD = "PASSWORD")




    new_d <- c(name = 'Rap',
              dateOfBirth = '1938-06-06',
              city = 'Hollywood',
              gender = 'Man',
              time() = 8,
              feeling = 'Happy')



# NOT WORKING -------------------------------------------------------------
    update_statement1 <- build_sql("UPDATE ShinyTest 
                                      SET Name =?, City =?, Gender =?, 
                                      DateOfBirth =?, Time =?, Feeling =? 
                                      WHERE ShinyUserID = 4", new_d, con = conn)
    update_statement1    

# NOT WORKING -------------------------------------------------------------
    update_statement2 <- build_sql("UPDATE ShinyTest 
                                      SET Name = name, City = city, Gender = gender, 
                                      DateOfBirth = dateOfBirth, Time = time, Feeling = feeling 
                                      WHERE ShinyUserID = 4", new_d,  con = conn)
    update_statement2  
    
# NOT WORKING -------------------------------------------------------------
    update_statement3 <- build_sql("UPDATE ShinyTest 
                                     SET Name = 'name', City = 'city', Gender = 'gender', 
                                     DateOfBirth = 'dateOfBirth', Time = 'time', Feeling = 'feeling' 
                                     WHERE ShinyUserID = 4", new_d, con = conn)
    update_statement3
    
# NOT WORKING -------------------------------------------------------------
    update_statement4 <- build_sql("UPDATE ShinyTest
                                     SET Name = $name, City = $city, Gender = $gender, 
                                     DateOfBirth = $dateOfBirth, Time = $time, Feeling = $feeling 
                                     WHERE ShinyUserID = 4",   new_d, con = conn)

    update_statement4


# WORKING -------------------------------------------------------------
    update_statement5 <- build_sql("UPDATE ShinyTest 
                                      SET Navn = 'Rap', City = 'Hollywood', Gender = 'Mand', 
                                      DateOfBirth = '1938-06-06', Tid = '8', Feeling = 'Glad'
                                                      WHERE ShinyUserID = 4", con = conn)
    update_statement5




   
# NOT WORKING -------------------------------------------------------------
    DBI::dbSendQuery(conn, update_statement1)
    DBI::dbSendQuery(conn, update_statement2)
    DBI::dbSendQuery(conn, update_statement3)
    DBI::dbSendQuery(conn, update_statement4)
    
    
# WORKING -------------------------------------------------------------
    DBI::dbSendQuery(conn, update_statement5)
    
    DBI::dbDisconnect(conn)
    

# The Error i get ---------------------------------------------------------

    
    #Error: nanodbc/nanodbc.cpp:1655: 42000: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Incorrect syntax near 'Rap'.  [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Statement(s) could not be prepared. 
    #<SQL> 'UPDATE ShinyTest 
    
    #                              SET Navn = navn, City = city, Gender = gender, 
     #                             DateOfBirth = dateOfBirth, Tid = tid, Feeling = feeling 
      #                            WHERE ShinyUserID = 4('Rap', '1938-06-06', 'Hollywood', 'Mand', '8', 'Glad')'
0 Answers
Related