
Se alguem puder me ajudar agradeço d+
*o erro que aparece é esse:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 5.1 Driver][mysqld-5.1.54-rel12.6-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 'and url_subcategoria = '2'' at line 1
/funcoes/funcoes.asp, line 271
O Script aonde tá o erro é esse
OQUE TÁ DE VERMELHO É AONDE APONTA O ERRO LINHA: 271
'########################################################################################################
'SUB exibe_produtos
' - Lista os RS_Produto cadastrados com as opções COMPRA/DESCRIÇÃO/INDICAR
' - Chamada no arquivo RS_Produto.ASP
'########################################################################################################
Sub exibe_produtos()
if request("url_categoria") <> "" then
codcat = pega_dadobanco("Categorias","codigo_categoria","url_categoria","'"&request("url_categoria")&"'")
end if
if request("url_marca") <> "" then
codmarca = pega_dadobanco("Marcas","codigo_marca","url_marca","'"&request("url_marca")&"'")
end if
if request("codigo_marca") <> "" then
codmarca = request("codigo_marca")
url_marca_busca = pega_dadobanco("Marcas","url_marca","codigo_marca","'"&request("codigo_marca")&"'")
end if
if request("url_marca") <> "" then
codmarca = pega_dadobanco("Marcas","codigo_marca","url_marca","'"&request("url_marca")&"'")
url_marca_busca = request("url_marca")
end if
if request("url_subcategoria") <> "" then
Set RS_Subcategoria = Server.CreateObject("ADODB.Recordset")
RS_Subcategoria.CursorLocation = 3
RS_Subcategoria.CursorType = 0
RS_Subcategoria.LockType = 1
RS_Subcategoria.Open "SELECT codigo_subcategoria, h1_subcategoria, nome_subcategoria FROM Subcategorias WHERE sigla_idioma='"&varLang&"' AND codigo_categoria = "&codcat &" and url_subcategoria = '"request("url_subcategoria")"'" , Conexao
codsubcat = RS_Subcategoria("codigo_subcategoria")
'Fecha e libera da memória o objeto de Recordset
RS_Subcategoria.close
Set RS_Subcategoria = Nothing
'codsubcat = pega_dadobanco("Subcategorias","codigo_subcategoria","url_subcategoria","'"&request("url_subcategoria")&"'")
end if
'Query_produtos monta uma string para consulta no banco de dados
' Define a ordem de exibição dos produtos
If Request("orderby") <> "" Then
queryORDERBY = "ORDER BY Produtos." & Request("orderby")
Else
queryORDERBY = "ORDER BY Produtos." & Application("OrdemProduto")
End If
' Oculta a possibilidade de ordem dos produtos
exibeOrdemProd = False
'Se a busca partir de uma categoria
If request("tipo_busca") = "categoria" Then
Query_produtos = "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.Frete_Gratis, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE Produtos.codigo_categoria = "&codcat&" AND Produtos.sigla_idioma = '"&varLang&"' AND Categorias.sigla_idioma = '"&varLang&"' AND Produtos.disponivel = 1 " & queryORDERBY
' Habilita a possibilidade de ordem dos produtos
exibeOrdemProd = True
'Se a busca partir de uma subcategoria
ElseIf request("tipo_busca") = "subcategoria" Then
Query_produtos = "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.Frete_Gratis, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE Produtos.codigo_subcategoria = "&codsubcat&" AND Produtos.sigla_idioma = '"&varLang&"' AND Categorias.sigla_idioma = '"&varLang&"' AND Produtos.disponivel = 1 " & queryORDERBY
' Habilita a possibilidade de ordem dos produtos
exibeOrdemProd = True
'Se a busca partir de uma marca
ElseIf request("tipo_busca") = "marca" Then
Query_produtos = "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.Frete_Gratis, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE Produtos.codigo_marca = "&codmarca&" AND Produtos.sigla_idioma = '"&varLang&"' AND Categorias.sigla_idioma = '"&varLang&"' AND Produtos.disponivel = 1 " & queryORDERBY
' Habilita a possibilidade de ordem dos produtos
exibeOrdemProd = True
'Se a busca partir de uma pesquisa por palavra chave
ElseIf request("tipo_busca") = "palavra" Then
'Request da palavra pesquisada
produto = request("produto")
'Caso não exista uma categoria para esta consulta
If request("codigo_categoria") <> "000" Then
Query_produtos = "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.Frete_Gratis, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE (nome_produto like '%" & produto & "%' OR descricao_produto LIKE '%" & produto & "%') AND Produtos.codigo_categoria = "&request("codigo_categoria")&" AND Produtos.sigla_idioma = '"&varLang&"' AND Categorias.sigla_idioma = '"&varLang&"' AND Produtos.disponivel = 1 " & queryORDERBY
'Caso exista uma categoria para esta consulta
Else
Query_produtos = "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.Frete_Gratis, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE (nome_produto like '%" & produto & "%' OR descricao_produto LIKE '%" & produto & "%') AND Produtos.sigla_idioma = '"&varLang&"' AND Categorias.sigla_idioma = '"&varLang&"' AND Produtos.disponivel = 1 " & queryORDERBY
End If
'Se a busca é de apenas produtos em ofertas
ElseIf request("tipo_busca") = "ofertas" Then
Query_produtos = "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.Frete_Gratis, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE Produtos.sigla_idioma = '"&varLang&"' AND Categorias.sigla_idioma = '"&varLang&"' AND Produtos.disponivel = 1 " & queryORDERBY
' Habilita a possibilidade de ordem dos produtos
exibeOrdemProd = True
'Se não for busca a consulta ao banco de da página inicial ou outra página especifíca
Else
'Exibição dos produtos na página incial
If page="default" Then
'Caso o banco de dados seja MSSQL
If Application("TipoBanco") = "mssql" Then
Query_produtos = "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.Frete_Gratis, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE destaque_vitrine = 1 AND Produtos.sigla_idioma = '"&varLang&"' AND Categorias.sigla_idioma = '"&varLang& "' AND Produtos.disponivel = 1 ORDER BY NewId()"
'Caso o banco de dados seja MYSQL
ElseIf Application("TipoBanco") = "mysql" Then
Query_produtos = "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.Frete_Gratis, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE destaque_vitrine = 1 AND Produtos.sigla_idioma = '"&varLang&"' AND Categorias.sigla_idioma = '"&varLang&"' AND Produtos.disponivel = 1 ORDER BY RAND()"
End If
'Exibição dos produtos em página que não seja inicial e nem derivada de uma pesquisa
Else
Query_produtos = "SELECT Produtos.codigo_produto, Produtos.codigo_categoria, Produtos.codigo_subcategoria, Produtos.codigo_marca, Produtos.codigo_produto_loja, Produtos.nome_produto, Produtos.descricao_produto, Produtos.autor, Produtos.codigo_isbn, Produtos.tamanhos, Produtos.cores, Produtos.preco_base, Produtos.preco_unitario, Produtos.desconto, Produtos.moeda, Produtos.quantidade_produto, Produtos.img_produtoPQN, Produtos.img_produtoGRD, Produtos.img_produto_adic01PQN, Produtos.img_produto_adic01GRD, Produtos.img_produto_adic02PQN, Produtos.img_produto_adic02GRD, Produtos.img_produto_adic03PQN, Produtos.img_produto_adic03GRD, Produtos.peso, Produtos.Frete_Gratis, Produtos.destaque_vitrine, Produtos.promocao, Produtos.data_inicio, Produtos.data_fim, Produtos.disponivel, Produtos.sigla_idioma FROM Categorias INNER JOIN Produtos ON Categorias.codigo_categoria = Produtos.codigo_categoria WHERE Produtos.sigla_idioma = '"&varLang&"' AND Categorias.sigla_idioma = '"&varLang&"' AND Produtos.disponivel = 1 " & queryORDERBY
' Habilita a possibilidade de ordem dos produtos
exibeOrdemProd = True
End If
End If
'Captura o número da página atual se existir
If Request.QueryString("PN") = "" Then
'Se a captura for vazia, será atribuido o valor inicial
PaginaCorrente = 1
Else
'Existindo captura, o valor é atribuido à página corrente
PaginaCorrente = Request.QueryString("PN")
End If
'Cpatura o número para exibição de produtos por página
If page="default" Then
'Se página exibida for a inicial (vitrine), será atribuido o valor do application("ProdutosVitrine")
VarIntervalo = Application("ProdutosVitrine")
ElseIf Request.QueryString("FctIntervalo")= "" Then
'Se a captura for vazia, será atribuido o valor do application("produtosporpagina")
VarIntervalo = Application("ProdutosPorPagina")
Else
'Existindo captura, o valor será atribuido ao intervalo de produtos exibidos por páginas
VarIntervalo = Request.QueryString("FctIntervalo")
End If
'Cria o objeto RS_Produto de recordset
Set RS_Produto = CreateObject("ADODB.Recordset")
Set RS_Produto.ActiveConnection = Conexao
RS_Produto.CursorLocation = 3
RS_Produto.CursorType = 0
RS_Produto.LockType = 1
RS_Produto.CacheSize = VarIntervalo
'Havendo necessidade descomente a linha abaixo para saber qual query está sendo executada.
'Response.write Query_produtos
'Executa da Query de consulta
RS_Produto.Open Query_produtos
'Define o o número de produtos exibidos na página
RS_Produto.PageSize = CInt(VarIntervalo)
'Define o número total de páginas
VarTotalPaginas= RS_Produto.PageCount
'Define o número total de produtos
Var_TotalRegistros = RS_Produto.recordcount
A FUNCTION PAGINAÇÃO LOGO ABAIXO
'########################################################################################################
'FUNCTION paginacao
' - Monta os links de páginação.
' - Usado onde ha necessidade de paginação
'########################################################################################################
Function paginacao(FctStrAdicional,FctTotalPaginas,FctIntervalo)
'Define qual é a página corrente
If Request.QueryString("PN") = "" THEN
PaginaCorrente = 1
Else
PaginaCorrente = Request.QueryString("PN")
End If
'Captura o endereço da página corrente
var_url = Request.serverVariables("SCRIPT_NAME")
arrayx = split(var_url,"/")
'Monta URL da paginação a partir do endereço capturado
do while I < ubound(arrayx)
I = I + 1
If len(trim(VarURLPaginacao)) = 0 then
VarURLPaginacao = arrayx(i)
End If
If arrayx(I) > VarURLPaginacao then
VarURLPaginacao = arrayx(I)
lngIndexMaiorValor = I
exit do
End If
loop
If RIGHT(VarURLPaginacao,4) <> ".asp" Then
VarURLPaginacao = ""
End If
Flag = INT(FctTotalPaginas / FctIntervalo)
Flag1 = INT(PaginaCorrente / FctIntervalo)
PI = Flag1 * FctIntervalo
If PI = 0 THEN
PI = 1
End If
PF = PI + FctIntervalo - 1
If CInt(Flag1) >= CInt(1) THEN
Response.Write "<a href="&VarURLPaginacao&"?PN=" & PI - 1 & "&FctIntervalo=" & FctIntervalo & FctStrAdicional & " ><B>"&Application("MiddleTxtAnterior")&"</B> .</a>"
End If
If (PaginaCorrente - 1) >= "1" Then
Response.Write "<a href="&VarURLPaginacao&"?PN=" & Request("PN") - 1 & "&FctIntervalo=" & FctIntervalo & FctStrAdicional & " ><B>"&Application("MiddleTxtAnterior")&"</B></a> ."
End If
FOR I = PI TO PF
If CInt(I) <= CInt(FctTotalPaginas) THEN
If CInt(PaginaCorrente) = CInt(I) THEN
response.write "<b>" & I & "</b> . "
Else
response.write "<a href="&VarURLPaginacao&"?PN=" & I & "&FctIntervalo=" & FctIntervalo & FctStrAdicional & " ><b>" & I & "</b></a> . "
FctPaginaAtual = Cint(PaginaCorrente)
End If
End If
NEXT
If CDbl(PaginaCorrente) < CDbl(FctTotalPaginas) Then
Response.Write "<a href="&VarURLPaginacao&"?PN=" & FctPaginaAtual + 1 & "&FctIntervalo=" & FctIntervalo & FctStrAdicional &" ><B>"&Application("MiddleTxtProxima")&"</B></a> "
End If
If (CInt(Flag1) < CInt(Flag)) THEN
If CInt(PF) <> CInt(FctTotalPaginas) THEN
Response.Write "<a href="&VarURLPaginacao&"?PN=" & PF + 1 & "&FctIntervalo=" & FctIntervalo & FctStrAdicional &" ><B>"&Application("MiddleTxtProxima")&"</B> </a>"
End If
End If
End Function
'########################################################################################################
'--> FIM SUB paginacao
'########################################################################################################
Edição feita por: locoman, 24/10/2011, 11:27.