Tenho os formulários:
lista.asp com o código:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <% 'Dados para a conexão com o banco de dados driver = "{MySql ODBC 3.51 Driver}" ' Drive para conexão ODBC servidor = "localhost" ' Nome DNS OU IP dp seu servidor 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 'Cria a expressão SQL de consulta sql = " SELECT * FROM livros ORDER BY livro ASC " 'Cria um objeto para armazenar o retorno da consulta, 'conhecido como ResultSet (Conjunto de Reultado) Set rs = Server.CreateObject("ADODB.RecordSet") 'Ativa a conexão criada para o ResultSet Set rs.ActiveConnection = cnnDB 'Execute a expressão SQL no servidor rs.Open sql %> <html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Gerenciando Registros</title> </head> <body> Preencha os campos a seguir: <table width="80%" border="1" cellpadding="1" cellspacing="0" > <tbody> <tr align="center" bgcolor="#999999"> <td>Cód.</td> <td>Livro</td> <td>Autor</td> <td>Editora</td> </tr> <% 'Execute um while para navegar nos registros de retorno while not rs.EOF Codigo = rs("ID") Livro = rs("LIVRO") Autor = rs("AUTOR") Editora = rs("EDITORA") %> <tr> <td width="20%" align="right"><%=Codigo%> <a href="inserir.asp?acao=editar&buscacodigo=<%=Codigo%>">(Editar)</a> <a href="gerencia-registro.asp?acao=excluir&buscacodigo=<%=Codigo%>">(Excluir)</a></td> <td width="30%"><%=Livro%></td> <td width="30%"><%=Autor%></td> <td width="35%" ><%=Editora%></td> </tr> <% 'Avança para o próximo registro rs.MoveNext 'Fim do while Wend %> </tbody> </table> <br /><a href="inserir.asp">Clique aqui para inserir um novo registro.</a><br /> </body> </html>
Ao abrir a página vejo todos os registros.
Clicando em "editar" que fica do lado de cada registro do formulário lista.asp abre o formulário "inserir.asp.
Nesse é possível alterar um registro de e clicando no botão "Aterar" abre o formulário "gerencia-registro.asp com o código:
<%@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 ' 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>
Ocorre que nesse momento recebo a mensagem:
Erro: [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
Clique aqui para inserir um novo registro.
Clique aqui para visualizar os registros.
E o registro não é alterado no banco de dados MySQL.
Apresentam resultados satisfatórios a "Inclusão", "Exclusão" de registros. Somente "Alterar" não funciona (UPDATE)