Jony Walker Postado Novembro 23, 2005 Denunciar Share Postado Novembro 23, 2005 tenho três campos no meu formulário para fazer uma busca mais avançada. Eis o código: <%Dim rsCons, sqlCons, varConvDim TXT, OTXTvarConv = request.querystring("conv")varReg = request.querystring("reg")varEsp = request.querystring("esp")call abre_conexaoTXT = ""OTXT = ""IF varConv<>"" THEN TXT=TXT&"doutor LIKE '"&TRIM(varConv)&"'"END IFIF varReg<>"" THEN IF TXT<>"" THEN TXT=TXT&" AND " END IF TXT=TXT&"clinica LIKE '"&TRIM(varReg)&"%'"END IFIF varEsp<>"" THEN IF TXT<>"" THEN TXT=TXT&" AND " END IF TXT=TXT&"form LIKE '"&TRIM(varEsp)&"%'"END IFsqlCons = " SELECT * FROM doutores WHERE '" & TXT & "'"rsCons = conexao.execute(sqlCons)%> O erro está aparecendo assim:Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta ''form LIKE 'cirurgia cardiovascular'''./guiamedico/avancada.asp, line 39 linha em vermelho Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Novembro 23, 2005 Denunciar Share Postado Novembro 23, 2005 posta pra gente como esta ficando a instrução sql:sqlCons = " SELECT * FROM doutores WHERE '" & TXT & "'"response.write sqlcons : response.endrsCons = conexao.execute(sqlCons) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jony Walker Postado Novembro 23, 2005 Autor Denunciar Share Postado Novembro 23, 2005 Tah aparecendo só isso aqui SELECT * FROM doutores WHERE '' A lógica do meu TXT está errada ou eu baguncei algo errado na hora de montá-lo ??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jony Walker Postado Novembro 24, 2005 Autor Denunciar Share Postado Novembro 24, 2005 Bom, após extensiva análise, constatei terrível erro humano. Os campos de convênio são booleanos, então tive q reformular um trecho do código, q agora ficou assim: TXT = ""OTXT = ""IF varConv<>"" THEN TXT = TXT & TRIM(varConv) & " = TRUE "END IFIF varReg<>"" THEN IF TXT<>"" THEN TXT=TXT&" AND " END IF TXT=TXT&"zona LIKE "&TRIM(varReg)&" "END IFIF varEsp<>"" THEN IF TXT<>"" THEN TXT=TXT&" AND " END IF TXT=TXT&"form LIKE "&TRIM(varEsp)&" "END IFsqlCons = " SELECT * FROM doutores WHERE " & TXT & " ORDER BY doutor " Imprimindo a consulta obtive o seguinte retorno (preenchendo os três campos): SELECT * FROM doutores WHERE agf = TRUE AND zona LIKE sul AND form LIKE homeopatia ORDER BY doutor essa se não me engano deveria ser a string de consulta correta, mas mesmo assim ele não a executa e reetorna o seguinte erro:Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)[Microsoft][Driver ODBC para Microsoft Access] Parâmetros insuficientes. Eram esperados 2./guiamedico/avancada.asp, line 41 que é a linha que manda executar a consulta... se a string está certa, porque ele num faz isso ??/ se eu colocar aspas simples nas variáveis ele nem termina de escrever a string Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Novembro 24, 2005 Denunciar Share Postado Novembro 24, 2005 nos campos zona e form tem que por aspas simples! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jony Walker Postado Novembro 24, 2005 Autor Denunciar Share Postado Novembro 24, 2005 beleza cyberalexx, você é o cara !!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Jony Walker
tenho três campos no meu formulário para fazer uma busca mais avançada. Eis o código:
O erro está aparecendo assim:
Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta ''form LIKE 'cirurgia cardiovascular'''.
/guiamedico/avancada.asp, line 39 linha em vermelho
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
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.