Quantcast
Channel: Fórum ASP
Viewing all articles
Browse latest Browse all 1214

Erro de sintaxe

$
0
0

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)  

 

 


Viewing all articles
Browse latest Browse all 1214

Trending Articles