Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kakashi Sensei

Erro com ASP

Recommended Posts

Estou com problemas com ASP, ele gera um boleto e eu estou começando agora a mexer com essa linguagem, já quebrei a cabeça aqui.

 

Linha do script:

 

Call AbreBd
Set Clientes = Conn.Execute("SELECT * FROM Anunciantes WHERE Cod = "& Request.QueryString("Anunciantes") &"")	
Set CidadeSel = Conn.Execute("SELECT * FROM Cidades WHERE Cod="&Clientes("CodCidade"))
Set EstadoSel = Conn.Execute("SELECT * FROM Estados WHERE Cod="&Clientes("CodEstado"))

IdBoleto = request.querystring("IdBoleto")

 

Erro apresentado:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Cod ='.

 

/Boleto.asp, line 22

 

 

Se alguém puder me ajudar eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a ortografia. pode ser um nome de coluna Invalido 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada. e também veja se os tipos de dados estão corretos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a ortografia. pode ser um nome de coluna Invalido 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada. e também veja se os tipos de dados estão corretos

 

Eu sei que o erro está aqui:

Set Clientes = Conn.Execute("SELECT * FROM Anunciantes WHERE Cod = "& Request.QueryString("Anunciantes") &"")

 

Eu abri o MDB e está correto o nome, Anunciantes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na string SQL, para ver o k esta sendo passado

response.write(SQL)
response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim tb

 

Set Clientes = Conn.Execute("SELECT * FROM Anunciantes WHERE Cod = '"& Request.QueryString("Anunciantes") &"'")

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se o valor passado no Cod é realmente numérico, veja se não esta passando um valor string...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim tb

 

Set Clientes = Conn.Execute("SELECT * FROM Anunciantes WHERE Cod = '"& Request.QueryString("Anunciantes") &"'")

 

Fiz isso ai e agora deu o erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

 

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

 

/Boleto.asp, line 22

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se o Request.QueryString("Anunciantes") que está passando é um valor numerico, pois na cláusula SLQ você esta passando ele como numérico...

Compartilhar este post


Link para o post
Compartilhar em outros sites

provavelmente é só retirar as aspas simples

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verdade, verifique seu tipo de dado no BANCO DE DADOS se é numérico retire as aspas simples da sua instrução SQL ficando assim:

 

Set Clientes = Conn.Execute("SELECT * FROM Anunciantes WHERE Cod = "& Request.QueryString("Anunciantes")&"")

*aspas simples são utilizadas quando o campo do banco de dados espera uma string, no seu caso COD não deve ser string, e sim do tipo numérico...

** como você mencionou que está trabalhando com ACCESS, verifique a estrutura de sua tabela, provavelmente o campo COD vai estar como numérico.

 

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verdade, verifique seu tipo de dado no BANCO DE DADOS se é numérico retire as aspas simples da sua instrução SQL ficando assim:

 

Set Clientes = Conn.Execute("SELECT * FROM Anunciantes WHERE Cod = "& Request.QueryString("Anunciantes")&"")

*aspas simples são utilizadas quando o campo do banco de dados espera uma string, no seu caso COD não deve ser string, e sim do tipo numérico...

** como você mencionou que está trabalhando com ACCESS, verifique a estrutura de sua tabela, provavelmente o campo COD vai estar como numérico.

 

 

Abs

 

 

Valeu, mas o código já estava assim e dá o erro:

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Cod ='.

 

/Boleto.asp, line 22

 

 

Eu não manjo nada de ASP, não entendo bulhufas de como alterar o COD, abri o banco de dados e o campo da tabela Anunciantes tem um monte de campos

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na string SQL, para ver o k esta sendo passado

 

response.write(SQL)
response.end(
)

 

abri o banco de dados e o campo da tabela Anunciantes tem um monte de campos

verifique qual o tipo de campo na tabela, veja também o nome da tabela e se o nome do campo esta correto

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na string SQL, para ver o k esta sendo passado

 

response.write(SQL)
response.end(
)

 

abri o banco de dados e o campo da tabela Anunciantes tem um monte de campos

verifique qual o tipo de campo na tabela, veja também o nome da tabela e se o nome do campo esta correto

 

Sim os nomes estão corretos

 

O COD é número na tabela

 

Não sei fazer isso ai

 

response.write(SQL)

response.end

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abaixo da linha com erro, insira:

response.write(SQL)

response.end

 

Vai mostrar a consulta SQL na tela. Poste o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz assim:

 

cria a conexao			
  'crio o rs
  set rs=Server.CreateObject("ADODB.Recordset")
  'crio o SQL
  SQL="SELECT * FROM Anunciantes WHERE Cod = "& Request.QueryString("Anunciantes")&"")
  rs.open SQL,conexao,1,3
response.write(SQL)
response.end()

utilize o objeto recordset

Compartilhar este post


Link para o post
Compartilhar em outros sites

o ultimo erro sugere que você não está passando valor corretamente a query

 

se responder o que os demais perguntaram dará para ter certeza do fato ou não

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.