none
Erro sntaxe update RRS feed

  • Pergunta

  • Tenho essa linha do update em uma página .asp

    set sql1 = tempcar3.execute("update dono_carro_2011 set nome_resp="&nome_resp&", s_nome_resp="&s_nome_resp&", fone_res="&fone_res&", fone_com="&fone_com&", fone_cel="&fone_cel&", cod_res="&cod_res&", cod_com="&cod_com&", cod_cel="&cod_cel&", tipo_resp="&tipo_resp&" where cod_car ="&codigo&";")

    Mas aparece mensagem de erro: Erro de sintaxe (operador faltando) na expressão de consulta 'DIOGO'.

    Nesse caso o nome mostrado é do campo nome_resp.

    Alguém consegue me ajudar?

    quarta-feira, 21 de março de 2012 19:17

Respostas

  • udapte_SQL

    olhando sua query rapidamente, obserivei que você não esta enviando os campos text como texto, precisa enviar com ', veja exemplo abaixo (assimi que  os campos tel tbm são texto por conter - ou () )

    set sql1 = tempcar3.execute("update dono_carro_2011 set nome_resp='"&nome_resp&"', s_nome_resp='"&s_nome_resp&"', fone_res='"&fone_res&"', fone_com='"&fone_com&"', fone_cel='"&fone_cel&"', cod_res="&cod_res&", cod_com="&cod_com&", cod_cel="&cod_cel&", tipo_resp='"&tipo_resp&"' where cod_car ="&codigo&";")


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quarta-feira, 21 de março de 2012 20:36
    Moderador

Todas as Respostas

  • Olá UPDATE SQL,

    Você pode mandar exibir o conteúdo dessa variável. Por exemplo, alimente-a e ao invés de executa-la de um printf. De posse do comando exato que está sendo executado no banco fica muito mais fácil de solucionar o problema.

    Caso você nao consiga fazer isto, use o SQL Profiler e capture a query que está sendo enviada para o banco.

    obs: nem imagino qual a sintaxe usada no .asp, o printf é apenas um exemplo.

    Você não está esquecendo de concatenar o texto?

    ex: "set nome_resp="+&nome_resp&+", s_nome_resp="+&s_nome_resp&+""

    observe o "+"

    Abraços.

    Se útil, Classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com é de SP e Vai ao SQL Saturday #127?


    • Editado DhiegoPiroto quarta-feira, 21 de março de 2012 20:37
    quarta-feira, 21 de março de 2012 19:27
  • udapte_SQL

    olhando sua query rapidamente, obserivei que você não esta enviando os campos text como texto, precisa enviar com ', veja exemplo abaixo (assimi que  os campos tel tbm são texto por conter - ou () )

    set sql1 = tempcar3.execute("update dono_carro_2011 set nome_resp='"&nome_resp&"', s_nome_resp='"&s_nome_resp&"', fone_res='"&fone_res&"', fone_com='"&fone_com&"', fone_cel='"&fone_cel&"', cod_res="&cod_res&", cod_com="&cod_com&", cod_cel="&cod_cel&", tipo_resp='"&tipo_resp&"' where cod_car ="&codigo&";")


    Att.
    Marcelo Fernandes

    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quarta-feira, 21 de março de 2012 20:36
    Moderador
  • Boa Noite,

    Independente do erro de sintaxe, eu recomendo fortemente que você revise o seu código.
    Essas concatenações deixam o código fortemente vulnerável ao SQL Injection.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    quarta-feira, 21 de março de 2012 23:41