Ir para conteúdo

Arquivado

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

marvazoler

Erro na execução de SELECT

Recommended Posts

Olá galera tudo beleza?

Bom agora estou com o seguite caso,

 

Estou terminando uma HelpDesk, mas está acontecendo o seguite:

<%Dim oConn Dim oRsDim filePath Dim varcodigofilePath = Server.MapPath("\banco\intranet.mdb")Set oConn = Server.CreateObject("ADODB.Connection")oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePathvarcodigo = Request.Form("codigo")Set oRs = oConn.Execute("SELECT * From tbl where codigo = "&varcodigo&"")%>
olha o que me vem:

 

 

Microsoft JET Database Engine erro '80040e14'

 

Erro de sintaxe (vírgula) na expressão de consulta 'Controle = 179, 178'.

 

/fecharaberta.asp, line 96

 

Set oRs = oConn.Execute("SELECT * From tbl where codigo =179")

da certo, ou seja os campos que vão receber os dados funcionam

mas quando tem mais de um codigo da erro

 

o que será isso?

 

desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então brother, a virgula não separa valores na busca do banco e sim a condição "AND"

 

SELECT * FROM tbl WHERE codigo =179 and codigo=178

Compartilhar este post


Link para o post
Compartilhar em outros sites

O meus jovens tudo beleza?o que eu preciso é que a variável funcione não código(número)entenderão?

Faz assim:
Set oRs = oConn.Execute("SELECT * From tbl where codigo IN ("&varcodigo&""))
AbraçoCassiano.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá camarada beleza?

Obrigado por responder meu post,

 

olha meu código

<%Dim oConn Dim oRsDim filePath Dim varcontrolefilePath = Server.MapPath("\banco\intranet.mdb")Set oConn = Server.CreateObject("ADODB.Connection")oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePathvarcontrole = Request.Form("controle")Set oRs = oConn.Execute("SELECT * From tbl_chamada where Controle = "&varcontrole&"")%>
Era para funcionar, era para mostrar os registros na tela

 

Eu revisei o código de onde vem a variável, e me parece que está contatenando os código diretos do banco e não respeitando a variável

 

Olha o erro:

Microsoft JET Database Engine erro '80040e14'

 

Erro de sintaxe (vírgula) na expressão de consulta 'Controle = 179, 181'.

 

/fecharaberta.asp, line 96

 

Desde já agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marvazoler, você está trazendo essa variável via Request.Form(), de outra página.

 

Se no formulário de origem desse valor existir 2 ou mais inputs com o mesmo nome*, quando você recuperar o value por esse nome através do Request.Form() o ASP vai trazer os valores de todos que tem o mesmo nome separado por "," (vírgula).

 

Verifica no formulário que submete os dados para o arquivo fecharaberta.asp, se existe componentes com nome duplicado*.

 

OK..!!?? T+...

 

*exceto radio button

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá camarada beleza?Cara eu olhei tudo o que podia fazer e ainda está me restornando os códigos aindaMicrosoft JET Database Engine erro '80040e14' Erro de sintaxe (vírgula) na expressão de consulta 'Controle = 179, 181'. /fecharaberta.asp, line 96 o que eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta usar In ao invés de =:

<%Dim oConnDim oRsDim filePathDim varcontrolefilePath = Server.MapPath("\banco\intranet.mdb")Set oConn = Server.CreateObject("ADODB.Connection")oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePathvarcontrole = Request.Form("controle")Set oRs = oConn.Execute("SELECT * From tbl_chamada where Controle in ( "&varcontrole&" )")%>

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.