Ir para conteúdo
Fórum Script Brasil
  • 0

Erro na sintaxe do MySQL


AlbertoRT

Pergunta

Tenho três formulários HTML, com as funcionalidades de inserção, edição e exclusão. Todos com integração do ASP com o MySQL 

Os formulário de inserção e exclusão estão funcionando corretamente.

O formulário de  edição,  ao alterar um registro e clicar em "Alterar" mostra a seguinte 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

O formulário que deve se referir ao erro é: gerencia-registro.asp

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 
'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>

Obrigado.

 

 

 

   

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Salve, salve Getpaulo,

Ok. Já verifiquei e não estava salvando as alterações no banco de dados.

Já foi identificado o erro que estava em outro arquivo desse mesmo programa com o nome inserir.asp

Que tem esse 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}"   ' Driver para conexão ODBC
	servidor = "localhost"					' Nome DNS ou IP do 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 fr 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 dp erro
On error resume next

' Verifica se o arquivo foi chamado em modo de edição
If Request.QueryString("acao") = "editar" then

' Cria a expressão que captura os dados do registro a ser alterado
sql = " SELECT * FROM Livros WHERE ID = "
sql = sql + Request.QueryString("buscacodigo")
response.write
' Cria um objeto para armazenar o registro da consulta
Set rs = Server.CreateObject("ADODB.RecordSet")

' Ativa a conexão criada para o ResultSet
Set rs.ActiveConnection = cnnDB

' Executa a expressão SQL no servidor
rs.Open sql

' Armazena os valores capturados em variáveis auxiliares, se existir
Codigo  = rs("ID")
Livro   = rs("LIVRO")
Autor  	= rs("AUTOR")
Editora = rs("EDITORA")

End if
%>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gerenciando Registro</title>
</head>

<body>
Preencha os campos a seguir:
<%
 If Request.QueryString("acao") = "editar" then
 	acao = "editar"
 Else
 	acao = "adicionar"
 End if
%>

<form method="post" action="gerencia-registro.asp?acao=<%=acao%>">
<input type="hidden" name="FormCodigoLivro" value="<%=Codigo%>" />
<table>
	<tr>
    	<td>Nome do Livro</td>
        <td>
        <input name="FormNomeLivro" size="80" maxlength="64" value="<%=Livro%>">
        </td>
    </tr>
    <tr>
    	<td>Nome do Autor:</td>
        <td>
        <input name="FormNomeAutor" size="80" maxlegth="64" value="<%=Autor%>" />
        </td>
    </tr>
    <tr>
    	<td>Nome da Editora:</td>
        <td>
         <input name="FormNomeEditora" size="60" maxlength="80" value="<%=Editora%>"/>
        </td>
    </tr>
    <tr>
    	<td colspan="2" align="right">
     	 <input type="reset" value="Limpar" />
 <%
   If Request.QueryString("acao") = "editar" then
   	NomeBotao = "Alterar"
   Else
    NomeBotao = "Cadastrar"
   End if
%>		
	<input type="submit" value="<%=NomeBotao%>" />
   </td>
 </tr>
 </table>
</form>
</body>
</html>

Aqui eu tinha digitado:

<input type="hidden" nome="FormCodigoLivro" value="<%=Codigo%>" />

E o correto é:

<input type="hidden" name="FormCodigoLivro" value="<%=Codigo%>" />

O danado do name digitei nome.

Obrigado pela dica.

Vou aproveitar.

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...