HTML form does not work in Data Change

Asked

Viewed 43 times

0

The "Insert" and "delete" forms are interacting with the Mysql database table data. Except The record-manager form that has the function of "Change" record:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br">

<%
'Dados para a conexão com o banco de dados
 driver   = "{MySQL ODBC 3.51 Driver}" ' Driver para conexão ODBC
 servidor = "localhost"                ' Nome DNS ou do seu servido HTTP
 usuario  = "root"                     ' Nome de usuário para acesso ao MySQL
 senha    = "admin"                    ' Senha de acesso
 banco    = "integracao"               ' Nome do banco de dados

'Cria um objeto de conexão com banco de dados
Set cnnDB = Server.CreateObject("ADODB.Connection")

'Cria a string de conexão
connStr = "driver=" + driver + "; uid=" + usuario + "; "
connStr = connStr + "pwd=" + senha + "; database=" + banco

'Seta a string de conexão, e realiza a conexão
cnnDB.ConnectionString = connStr
cnnDB.Open

'Caso ocorra um erro, prossiga até o tratamento de erro
On error resume next

'Verifica se o arquivo foi chamado a partir de um formulário
If Request.QueryString("acao") = "adicionar" then
    sql = " INSERT INTO LIVROS (LIVRO, AUTOR, EDITORA) VALUES ( "
    sql = sql & "'" & Request.Form("FormNomeLivro") & "', "
    sql = sql & "'" & Request.Form("FormNomeAutor") & "', "
    sql = sql & "'" & Request.Form("FormNomeEditora") & "' " 
    sql = sql & ")"



'Executa a expressão SQL no servidor
cnnDB.Execute sql

'Verifica o sucesso da operação, baseada ma variável 'err'
If err.number = 0 then
 Response.Write("Operação realizada com sucesso")
Else
 Response.Write("Erro: " + err.description)
 End if

'Executa a alteração do registro, se solicitada
Elseif Request.QueryString("acao") = "editar" then
    sql = "UPDATE LIVROS SET "
    sql = sql & "LIVRO = '" & Request.Form("FormNomeLivro") & "', "
    sql = sql & "AUTOR = '" & Request.Form("FormNomeAutor") & "', "
    sql = sql & "EDITORA = '" & Request.Form("FormNomeEditora") & "' "
    sql = sql & "WHERE ID = " & Request.Form("FormCodigoLivro") 

'Executa a expressão SQL no servidor
cnnDB.Execute sql 
'Response.Write "Query = " & sql

' Verifica o sucesso da operação, baseada na variável 'err'
If err.number = 0 then
    Response.Write("Operação realizada com sucesso")
Else
    Response.Write("Erro: " + err.description)
 End if 

' Execute a exclusão do registro, se solicitada
Elseif Request.QueryString("acao") = "excluir" then
    sql = " DELETE FROM LIVROS WHERE ID = "
    sql = sql & Request.QueryString("buscacodigo")

' Ececuta a expressão SQL no servidor
cnnDB.Execute sql 

'Verifica o sucesso da operação, baseada na variável 'err'
If err.number = 0 then
    Response.Write("Operação realizada com sucesso")
Else 
    Response.Write("Erro: " + err.description)
 End if

End if

%>

<br /><a href="inserir.asp">Clique aqui para inserir um novo registro.</a>
<br /><a href="lista.asp">Clique aqui para visualizar os registros.</a>

</body>
</html>

Executing a change in a record shows.

Error: [Mysql][ODBC 3.51 Driver][mysqld-5.7.13-log]You have an error in your SQL syntax; check the manual that Corresponds to your Mysql server version for the right syntax to use near '' at line 1

  • Apparently the query is correct, you have how to check the value of Request.Form("FormCodigoLivro")? That must be the problem.

  • You could uncomment the line 'Response.Write "Query = " & sql and let us know what appears?

  • Check the values coming from the form, mainly the Request.Form("FormCodigoLivro") because if it is empty Oce ends up having a query like this: UPDATE LIVROS SET ..... WHERE ID = leading to this syntax error.

  • The Neuber comment should solve this problem. A system of validation of the submitted data should be applied...

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.