Ir para conteúdo

POWERED BY:

Arquivado

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

RodrigoCorrea

Grande Volume de Dados no ASP

Recommended Posts

Pessoal,

 

Gostaria de uma ajuda para tratar grandes volumes de dados em buscas no ASP. Tenho uma busca em ASP que está retornando atualmente a informação de 1.000 clientes, mas em pouco tempo esse volume de dados irá aumentar.

Funciona assim: o cliente acessa o site e busca por empresas cadastradas, o asp vai até o banco e pega as informações da empresa e depois volta no banco para poder gerar o filtro da busca, com base na busca realizada.

Esse processo está demorando mais do que o esperado.

Fiz um teste no site do guiamais e do telelistas e vi que uma busca la com um retorno de 17.000 clientes demoro menos da metade do tempo que a busca que estou fazendo.

Alquem teria uma ideia de como melhorar essa busca?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como é a sua consulta? tens como postar ela?

 

Cara, utilizando paginação de dados, já vi listagens com mais de 350.000 registros funcionando bem, demorando é claro, mas um tempo bem razoável para a quantidade de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá RodrigoCorrea e seja bem vindo ao fórum!

 

Alquem teria uma ideia de como melhorar essa busca?

A escolha do banco de dados e a modelagem correta do mesmo são fundamentais. A partir daí, otimizar suas conexões, scripts, sql's, etc.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

M.Torres e Public2004, o meu problema eu acho está na montagem do filtro de busca.

Quado tiro o filtro a busca retorna em um tmepo razoável.

 

Segue abaixo o código usado na busca.

A página recebe duas informações: 1 - Palavra-Chave. e/ou 2 - Cidade + Estado.

 

<%

Dim QTD
Dim Local_Busca
Dim LocalGeral
Dim PalavraChaveGeral

function Busca_Empresa ()

	Const QTD_MAX_LINHAS = 20
	Const PRIMEIRA_PAGINA = 1

	Dim objConexao
	Dim objTabela
	Dim strConsulta
	Dim strlocal
	Dim strpalavrachave
	Dim arrayLocal	  
	Dim NVCategoria  
	Dim intcontador
	Dim intQtdMaxLinhas
	Dim intPaginaAtual	  
	Dim i
	Dim strRet
	Dim intposicao	  
	Dim strlink	  
	Dim aux
	Dim aux2      
	Dim Caux
	Dim Caux2
	Dim Qtd
	Dim QtdRecord


	aux = 0
	Caux = 0

	if (Request.Form("hidenviouformulario") = "Sim") or (Request.QueryString("hidenviou") = "sim") then


		if request.QueryString("verif") <> 1 then

			With Request

				strlocal  			= Verifica_Apostrofo(trim(CStr(.Form("txtlocal"))))
				strpalavrachave 	= Verifica_Apostrofo(trim(Cstr(.Form("txtpalavrachave"))))
				intQtdMaxLinhas 	= CInt(.QueryString("QtdRegistros"))
				intPaginaAtual  	= CInt(.QueryString("PaginaAtual"))

				LocalGeral 		  	= Verifica_Apostrofo(trim(CStr(.Form("txtlocal"))))
				PalavraChaveGeral 	= Verifica_Apostrofo(trim(Cstr(.Form("txtpalavrachave"))))

			End With

		else

			With Request

				strlocal  			= trim(CStr(.QueryString("local")))
				strpalavrachave 	= Cstr(.QueryString("palavrachave"))
				intQtdMaxLinhas 	= CInt(.QueryString("QtdRegistros"))
				intPaginaAtual  	= CInt(.QueryString("PaginaAtual"))

				LocalGeral  	  	= trim(CStr(.QueryString("local")))
				PalavraChaveGeral	= Cstr(.QueryString("palavrachave"))

			End With 

		end if 

		if strpalavrachave = "" and strlocal <> "" then

			'-------------------------------------------------------------------------------------------

			strConsulta = "SELECT NOME,SIGLA_ESTADO FROM CIDADES"

			on error resume next
			Set objConexao = Abre_Conexao
			trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR NOME E SIGLA CIDADES - Codigo_Busca.asp)"	  	  	
			Set objTabela  = Server.CreateObject("ADODB.Recordset")
			trata_erro "Pesquisa no Banco de Dados (BUSCAR NOME E SIGLA CIDADES - Codigo_Busca.asp)"
			objtabela.Open strConsulta, objConexao, 3, 3

			for i = 1 to objTabela.RecordCount

				aux2 = objtabela("NOME") & ", " & objtabela("SIGLA_ESTADO")

				if UCase(aux2) = UCase(strlocal) then

					aux = 1
					Exit For

				end if		

				objtabela.movenext

				if objTabela.EOF Then Exit For

			Next

			Fecha_Recordset objTabela
			Fecha_Conexao objConexao

			'---

			if aux = 0 then

			   strlocal =  buscaestado(strlocal)

			end if 

			if strlocal = ", " then

				strlocal = ""
			else

				arrayLocal = Split(strLocal,", ")

			end if

			strconsulta = ""

			If intQtdMaxLinhas = 0 Then _
			   intQtdMaxLinhas = QTD_MAX_LINHAS
			If intPaginaAtual  = 0 Then _
			   intPaginaAtual  = PRIMEIRA_PAGINA

			strConsulta = "SELECT * FROM EMPRESAS WHERE AUTORIZADO_PGTS = 'SIM' AND CIDADE = '{2}' AND ESTADO = '{3}' "&_
						  "ORDER BY TIPO_ANUNCIO DESC, NEWID() "

			strConsulta = Replace(strConsulta,"{2}",arrayLocal(0))
			strConsulta = Replace(strConsulta,"{3}",arrayLocal(1))

			on error resume next
			Set objConexao = Abre_Conexao
			trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"	  	  	
			Set objTabela  = Server.CreateObject("ADODB.Recordset")
			trata_erro "Pesquisa no Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"
			objtabela.Open strConsulta, objConexao, 3, 3

			'-------------------------------------------------------------------------------------------

		elseif strlocal = "" and strpalavrachave <> "" then

			'-------------------------------------------------------------------------------------------

			strconsulta = ""

			If intQtdMaxLinhas = 0 Then _
			   intQtdMaxLinhas = QTD_MAX_LINHAS
			If intPaginaAtual  = 0 Then _
			   intPaginaAtual  = PRIMEIRA_PAGINA

			strConsulta = "SELECT * FROM EMPRESAS, CATEGORIAS C WHERE AUTORIZADO_PGTS = 'SIM' AND CODIGO = C.CODIGO_EMPRESA AND ( "&_
						  "C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_							  
						  "OR NOME LIKE '%{1}%' ) "&_
						  "ORDER BY TIPO_ANUNCIO DESC, NEWID() "

			strConsulta = Replace(strConsulta,"{1}",strpalavrachave)


			on error resume next
			Set objConexao = Abre_Conexao
			trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"	  	  	
			Set objTabela  = Server.CreateObject("ADODB.Recordset")
			trata_erro "Pesquisa no Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"
			objtabela.Open strConsulta, objConexao, 3, 3

			'-------------------------------------------------------------------------------------------

		elseif strlocal = "" and strpalavrachave = "" then

			'-------------------------------------------------------------------------------------------

			With request.Cookies("PGTS")

				strlocal = .Item("CidadeCompleta")

			end with

			'-------------------------------------------------------------------------------------------

			strConsulta = "SELECT NOME,SIGLA_ESTADO FROM CIDADES"

			on error resume next
			Set objConexao = Abre_Conexao
			trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR NOME E SIGLA CIDADES - Codigo_Busca.asp)"	  	  	
			Set objTabela  = Server.CreateObject("ADODB.Recordset")
			trata_erro "Pesquisa no Banco de Dados (BUSCAR NOME E SIGLA CIDADES - Codigo_Busca.asp)"
			objtabela.Open strConsulta, objConexao, 3, 3

			for i = 1 to objTabela.RecordCount

				aux2 = objtabela("NOME") & ", " & objtabela("SIGLA_ESTADO")

				if UCase(aux2) = UCase(strlocal) then

					aux = 1
					Exit For

				end if		

				objtabela.movenext

				if objTabela.EOF Then Exit For

			Next

			Fecha_Recordset objTabela
			Fecha_Conexao objConexao

			'---

			if aux = 0 then

			   strlocal =  buscaestado(strlocal)

			end if 

			if strlocal = ", " then

				strlocal = ""
			else

				arrayLocal = Split(strLocal,", ")

			end if

			strconsulta = ""

			If intQtdMaxLinhas = 0 Then _
			   intQtdMaxLinhas = QTD_MAX_LINHAS
			If intPaginaAtual  = 0 Then _
			   intPaginaAtual  = PRIMEIRA_PAGINA

			strConsulta = "SELECT * FROM EMPRESAS WHERE AUTORIZADO_PGTS = 'SIM' AND CIDADE = '{2}' AND ESTADO = '{3}' "&_
						  "ORDER BY TIPO_ANUNCIO DESC, NEWID() "

			strConsulta = Replace(strConsulta,"{2}",arrayLocal(0))
			strConsulta = Replace(strConsulta,"{3}",arrayLocal(1))

			on error resume next
			Set objConexao = Abre_Conexao
			trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"	  	  	
			Set objTabela  = Server.CreateObject("ADODB.Recordset")
			trata_erro "Pesquisa no Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"
			objtabela.Open strConsulta, objConexao, 3, 3

			'-------------------------------------------------------------------------------------------

		else

			'-------------------------------------------------------------------------------------------

			strConsulta = "SELECT NOME,SIGLA_ESTADO FROM CIDADES"

			on error resume next
			Set objConexao = Abre_Conexao
			trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR NOME E SIGLA CIDADES - Codigo_Busca.asp)"	  	  	
			Set objTabela  = Server.CreateObject("ADODB.Recordset")
			trata_erro "Pesquisa no Banco de Dados (BUSCAR NOME E SIGLA CIDADES - Codigo_Busca.asp)"
			objtabela.Open strConsulta, objConexao, 3, 3

			for i = 1 to objTabela.RecordCount

				aux2 = objtabela("NOME") & ", " & objtabela("SIGLA_ESTADO")

				if UCase(aux2) = UCase(strlocal) then

					aux = 1
					Exit For

				end if		

				objtabela.movenext

				if objTabela.EOF Then Exit For

			Next

			Fecha_Recordset objTabela
			Fecha_Conexao objConexao

			'---

			if aux = 0 then

			   strlocal =  buscaestado(strlocal)

			end if 

			if strlocal = ", " then

				strlocal = ""
			else

				arrayLocal = Split(strLocal,", ")

			end if

			strconsulta = ""

			If intQtdMaxLinhas = 0 Then _
			   intQtdMaxLinhas = QTD_MAX_LINHAS
			If intPaginaAtual  = 0 Then _
			   intPaginaAtual  = PRIMEIRA_PAGINA

			strConsulta = "SELECT * FROM EMPRESAS E, CATEGORIAS C, ABRANGENCIA A WHERE AUTORIZADO_PGTS = 'SIM' AND CODIGO = C.CODIGO_EMPRESA AND ( "&_ 
						  "C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_1 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_2 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_3 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_4 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV1 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV2 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV3 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV4 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_
						  "OR C.CODIGO_CATEGORIA_5 IN "&_ 
						  "(SELECT CODIGO FROM CATEGORIAS_NV5 WHERE NOME <> 'N/A' AND TAG LIKE '%{1}%') "&_	
						  "OR NOME LIKE '%{1}%' ) "&_
						  "AND CODIGO = A.CODIGO_EMPRESA "&_
						  "AND ( (A.ESTADO_ABRANGENCIA = '{3}' AND A.CIDADE_ABRANGENCIA = '{2}') OR (A.ESTADO_ABRANGENCIA = '{3}' AND A.CIDADE_ABRANGENCIA = 'TODAS') ) "&_
						  "ORDER BY TIPO_ANUNCIO DESC, NEWID() "

			strConsulta = Replace(strConsulta,"{1}",strpalavrachave)
			strConsulta = Replace(strConsulta,"{2}",arrayLocal(0))
			strConsulta = Replace(strConsulta,"{3}",arrayLocal(1))

			on error resume next
			Set objConexao = Abre_Conexao
			trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"	  	  	
			Set objTabela  = Server.CreateObject("ADODB.Recordset")
			trata_erro "Pesquisa no Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"
			objtabela.Open strConsulta, objConexao, 3, 3

			'-------------------------------------------------------------------------------------------

		end if

		'-------------------------------------------------------------------------------------------------

		QtdRecord = objTabela.RecordCount


		if strpalavrachave <> "" then

			%>

				<script type="text/javascript" language="javascript">

					document.getElementById('jpalavrachave').innerHTML = ' para ';

					document.getElementById('mostrapalavrachave').innerHTML = '<%= strpalavrachave %>';

				</script>

			<%

		end if 

		if strlocal <> "" then

			%>

				<script type="text/javascript" language="javascript">

					document.getElementById('jlocal').innerHTML = ' em ';

					document.getElementById('mostralocal').innerHTML = '<%= strlocal %>';

				</script>

			<%

		end if 

			%>

				<script type="text/javascript" language="javascript">

					document.getElementById('qtdencontrados').innerHTML = '<%= objtabela.RecordCount %>';

					document.form_busca.txtpalavrachave.value = '<%= strpalavrachave %>';

					document.form_busca.txtlocal.value = '<%= strlocal %>';

				</script>

			<%



		if strlocal <> "" then

			Local_Busca = strLocal

		else

			Local_Busca = CidadeCompleta

		end if 

		if objTabela.EOF then

			'Response.write"<tr><TD align=center width=100% ><BR><p align=center><b><font size=4 color=#0c4ea2 face=Arial>Nenhum Resultado Encontrado</font></b></p></TD></tr>"

			strret = strret &_
			"<BR><div id=" & chr(34) & "Bloco_INFO_Empresa_nao_encontrada" & chr(34) & " >" &_
			"<div style=" & chr(34) & "float:left;width:30%;text-align:center;" & chr(34) & " ><img src=" & chr(34) & "Images/alert.png" & chr(34) & " border=" & chr(34) & "0" & chr(34) & " /></div>"&_
			"<div style=" & chr(34) & "width:68%;float:right;text-align:left;" & chr(34) & " >Sua busca não retornou resultado!<BR>Tente buscar em outro local!<BR>Altere o termo buscado!</div>"&_						 
			"</div><BR><BR>"

			strret = strret &_
			"<div id=" & chr(34) & "Bloco_INFO_Falta_Empresa" & chr(34) & " >" &_
			"<div style=" & chr(34) & "padding:10px;padding-left:60px;padding-right:50px;" & chr(34) & " >" &_
			"<div style=" & chr(34) & "float:left;" & chr(34) & " ><img src=" & chr(34) & "Images/Info_Busca2.png" & chr(34) & " border=" & chr(34) & "0" & chr(34) & " /></div>"&_
			"<div style=" & chr(34) & "float:right;text-align:right;" & chr(34) & " >Sentiu falta da empresa que você está procurando?<BR><a href=" & chr(34) & "Cadastra_Empresa.asp" & chr(34) & " >Cadastre uma empresa. É Grátis!</a></div>"&_						 
			"</div>"&_
			"</div><BR>"

			%>

				<script language="JavaScript" type="text/javascript">

							//$("#mostra_resultados").hide();
							$("#mostra_filtro").hide();
							$("#mostra_compartilha").hide();

				</script>

			<%

			Busca_Empresa = strRet

		else 	  

			With objTabela

				'Paginação não funciona c/ adOpenForwardOnly
				.PageSize     = intQtdMaxLinhas
				.AbsolutePage = intPaginaAtual

			End With

			For i = 1 To objTabela.PageSize

				if objtabela("TIPO_ANUNCIO") = "PAGO" then

					strret = strret &_
					"<div id=" & chr(34) & "Bloco_INFO_Busca_PAGO" & chr(34) & ">" &_	
					"<div style=" & chr(34) & "text-align:left;width:100%;background:#0c4ea2;" & chr(34) & " >" &_
						"<div style=" & chr(34) & "padding-left:10px;padding-right:10px;" & chr(34) & " >" &_
						"<font class=" & chr(34) & "links_nome_empresa_busca_PAGO" & chr(34) & ">" & objtabela("NOME") & "</font>"&_
						"</div>"&_
					"</div>"&_
					"<div style=" & chr(34) & "padding-left:10px;text-align:left;float:left;" & chr(34) & " >" &_
					"<font class=" & chr(34) & "links_busca" & chr(34) & ">em </font><font class=" & chr(34) & "links_busca_cor_pago" & chr(34) & "><a title=" & chr(34) & "Buscar por " & Busca_Nome_Categoria(objtabela("CODIGO"),"1") &  chr(34) & " href=" & chr(34) & "busca.asp?hidenviou=sim&verif=1&palavrachave=" & Busca_Nome_Categoria(objtabela("CODIGO"),"1") & chr(34) & " >" & Busca_Nome_Categoria(objtabela("CODIGO"),"1") & "</a></font>"			

					if Len(trim(objtabela("COMPLEMENTO"))) < 1 then						

						strret = strret & "<BR>" & objtabela("ENDERECO") & ", " & objtabela("NUMERO")						

					else

						strret = strret & "<BR>" & objtabela("ENDERECO") & ", " & objtabela("NUMERO") & " - " & objtabela("COMPLEMENTO")						

					end if

					if Len(trim(objtabela("BAIRRO"))) < 1 and Len(trim(objtabela("CEP"))) < 8 then						

						strret = strret & "<BR>" & objtabela("CIDADE") & " - " & objtabela("ESTADO")						

					elseif Len(trim(objtabela("BAIRRO"))) > 0 and Len(trim(objtabela("CEP"))) < 8 then

						strret = strret & "<BR>" & objtabela("BAIRRO") & " - " & objtabela("CIDADE") & " - " & objtabela("ESTADO")	

					elseif Len(trim(objtabela("BAIRRO"))) < 1 and Len(trim(objtabela("CEP"))) = 8 then

						strret = strret & "<BR>" & objtabela("CIDADE") & " - " & objtabela("ESTADO") & " | " & formatarcep(objtabela("CEP"))						

					elseif Len(trim(objtabela("BAIRRO"))) > 0 and Len(trim(objtabela("CEP"))) = 8 then

						strret = strret & "<BR>" & objtabela("BAIRRO") & " - " & objtabela("CIDADE") & " - " & objtabela("ESTADO") & " | " & formatarcep(objtabela("CEP"))				

					end if

					strret = strret & "<BR><TABLE><TR HEIGHT=20><TD><img src=" & chr(34) & "Images/TelePhone.png" & chr(34) & " border=0 /></TD><TD VALIGN=TOP ><FONT COLOR=#000000><b> (" & objtabela("DDD1") & ") " & left(objtabela("TELEFONE1"),4) & "-" & right(objtabela("TELEFONE1"),4) & "</b></FONT></TD></TR></TABLE>"						

					if len(objtabela("EMAIL")) < 1 then

						strret = strret & "<font class=" & chr(34) & "links_busca" & chr(34) & "><img src=" & chr(34) & "Images/Mail.png" & chr(34) & " border=0 /> Fale Conosco"						

					else

						strret = strret & "<font class=" & chr(34) & "links_busca" & chr(34) & "><a title=" & chr(34) & "Entre em Contato" &  chr(34) & " href=" & chr(34) & "javascript:abrirFaleConosco('Fale_Conosco_Empresa.asp?codigo=" & objtabela("CODIGO") & "');" & chr(34) & "><img src=" & chr(34) & "Images/Mail.png" & chr(34) & " border=0 /> Fale Conosco</a>"						

					end if

					if len(objtabela("SITE")) >= 8 then

						strret = strret & "  |  <a title=" & chr(34) & "Visitar o Site" &  chr(34) & " href=" & chr(34) & objtabela("SITE") & chr(34) & " target=_Blank><img src=" & chr(34) & "Images/Globe.png" & chr(34) & " border=0 /> Site</a>"

					else

						strret = strret & "  |  <img src=" & chr(34) & "Images/Globe.png" & chr(34) & " border=0 /> Site"

					end if

					strret = strret & "  |  <a title=" & chr(34) & "Ver o Mapa" &  chr(34) & " href=" & chr(34) & "Detalhes_Empresa.asp?codigo=" & objtabela("CODIGO") & chr(34) & "><img src=" & chr(34) & "Images/Map_Blue.png" & chr(34) & " border=0 /> Mapa</a>"&_
					"  |  <a title=" & chr(34) & "Mais Informações" &  chr(34) & " href=" & chr(34) & "Detalhes_Empresa.asp?codigo=" & objtabela("CODIGO") & chr(34) & "><img src=" & chr(34) & "Images/Add.png" & chr(34) & " border=0 /> Saiba Mais</a></font>"&_		
					"</div>"&_
					"<div style=" & chr(34) & "padding-right:10px;float:right;padding-top:5px;" & chr(34) & " >"					

					if Len(Trim(objtabela("LOGO"))) < 1 then

						strret = strret & "<img src=" & chr(34) & "Images/Foto_Branco.png" & chr(34) & " border=0 />"

					else

						strret = strret & "<img src=" & chr(34) & objtabela("LOGO") & chr(34) & " border=0 />"

					end if

					strret = strret & "<BR></div>"&_
					"<div style=" & chr(34) & "float:left;padding-left:10px;border-top: 1px solid #0c4ea2;margin-top:5px;padding:5px;" & chr(34) & " ><img src=" & chr(34) & "Images/Info.png" & chr(34) & " border=0 /> " & objtabela("INFO1") & "</div>" &_	
					"</div><BR>"

				else

					strret = strret &_
					"<div id=" & chr(34) & "Bloco_INFO_Busca_GRATIS" & chr(34) & ">" &_	
					"<div style=" & chr(34) & "text-align:left;width:100%;background:#666;" & chr(34) & " >" &_
						"<div style=" & chr(34) & "padding-left:10px;padding-right:10px;" & chr(34) & " >" &_
						"<font class=" & chr(34) & "links_nome_empresa_busca_GRATIS" & chr(34) & ">" & objtabela("NOME") & "</font>"&_
						"</div>"&_
					"</div>"&_
					"<div style=" & chr(34) & "padding-left:10px;text-align:left;float:left;" & chr(34) & " >" &_
					"<font class=" & chr(34) & "links_busca" & chr(34) & ">em </font><font class=" & chr(34) & "links_busca_cor" & chr(34) & "><a title=" & chr(34) & "Buscar por " & Busca_Nome_Categoria(objtabela("CODIGO"),"1") &  chr(34) & " href=" & chr(34) & "busca.asp?hidenviou=sim&verif=1&palavrachave=" & Busca_Nome_Categoria(objtabela("CODIGO"),"1") & chr(34) & " >" & Busca_Nome_Categoria(objtabela("CODIGO"),"1") & "</a></font>"

					if Len(trim(objtabela("COMPLEMENTO"))) < 1 then						

						strret = strret & "<BR>" & objtabela("ENDERECO") & ", " & objtabela("NUMERO")						

					else

						strret = strret & "<BR>" & objtabela("ENDERECO") & ", " & objtabela("NUMERO") & " - " & objtabela("COMPLEMENTO")						

					end if

					if Len(trim(objtabela("BAIRRO"))) < 1 and Len(trim(objtabela("CEP"))) < 8 then						

						strret = strret & "<BR>" & objtabela("CIDADE") & " - " & objtabela("ESTADO")						

					elseif Len(trim(objtabela("BAIRRO"))) > 0 and Len(trim(objtabela("CEP"))) < 8 then

						strret = strret & "<BR>" & objtabela("BAIRRO") & " - " & objtabela("CIDADE") & " - " & objtabela("ESTADO")	

					elseif Len(trim(objtabela("BAIRRO"))) < 1 and Len(trim(objtabela("CEP"))) = 8 then

						strret = strret & "<BR>" & objtabela("CIDADE") & " - " & objtabela("ESTADO") & " | " & formatarcep(objtabela("CEP"))							

					elseif Len(trim(objtabela("BAIRRO"))) > 0 and Len(trim(objtabela("CEP"))) = 8 then

						strret = strret & "<BR>" & objtabela("BAIRRO") & " - " & objtabela("CIDADE") & " - " & objtabela("ESTADO") & " | " & formatarcep(objtabela("CEP"))				

					end if

					strret = strret & "<BR><BR><font class=" & chr(34) & "links_busca" & chr(34) & "><a title=" & chr(34) & "Ver o Telefone" &  chr(34) & " href=" & chr(34) & "Detalhes_Empresa.asp?codigo=" & objtabela("CODIGO") & chr(34) & "> Telefone</a>"&_
					"  |  <a title=" & chr(34) & "Ver o Mapa" &  chr(34) & " href=" & chr(34) & "Detalhes_Empresa.asp?codigo=" & objtabela("CODIGO") & chr(34) & "> Mapa</a>"&_
					"  |  <a title=" & chr(34) & "Mais Informações" &  chr(34) & " href=" & chr(34) & "Detalhes_Empresa.asp?codigo=" & objtabela("CODIGO") & chr(34) & "> Saiba Mais</a></font>"&_		
					"</div>"&_
					"<BR><BR><BR><BR><BR>" &_
					"</div><BR>"

				end if

				objtabela.movenext

				If objTabela.EOF Then Exit For

			Next

			if (objTabela.RecordCount mod 4) <> 0 then

				strret = strret & ""

			end if       

			strRet = strRet & Menu_Navegacao(objTabela.RecordCount,intQtdMaxLinhas,intPaginaAtual,strlocal,strpalavrachave,objTabela.PageCount,objtabela.recordcount) 

			Busca_Empresa = strRet	  

		end if

		Fecha_Recordset objTabela
		Fecha_Conexao objConexao

	end if  

  		'-------------------------------------------------------------------------------------------------

		call montafiltro(strConsulta,strPalavraChave,strLocal,QtdRecord)

	'-------------------------------------------------------------------------------------------------

End function

function buscaestado(cidade)

	Dim objConexao
	Dim objTabela
	Dim strConsulta
	Dim strlocal

		strConsulta = "SELECT NOME,SIGLA_ESTADO FROM CIDADES WHERE NOME = '{1}'"
		strConsulta = Replace(strConsulta,"{1}",cidade)

		on error resume next
		Set objConexao = Abre_Conexao
		trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR ESTADO - Codigo_Busca.asp)"	  	  	
		Set objTabela  = Server.CreateObject("ADODB.Recordset")
		trata_erro "Pesquisa no Banco de Dados (BUSCAR ESTADO - Codigo_Busca.asp)"
		objtabela.Open strConsulta, objConexao, 3, 3

		if objTabela.RecordCount > 0 then

			buscaestado = objTabela("NOME") & ", " & objTabela("SIGLA_ESTADO")

		else

			buscaestado = cidade

		end if

		Fecha_Recordset objTabela
		Fecha_Conexao objConexao

end function

Function Menu_Navegacao (Qtd_itens_encontrados, _
						 intQtdMaxLinhas, _
                            intPaginaAtual, _
                            local, _
                            palavrachave, _
                            intTotPaginas,intitenspagina)

	Dim strLink
	Dim strMenu
	Dim intpaginacont
	Dim pagetot
	Dim limitador
	Dim menor
	Dim maior
	Dim stritens

	strLink = "<A HREF='Busca.asp?" & _
       "local={1}&" & _
       "palavrachave={2}&" & _
	"qtditensencontrados={3}&" & _
       "PaginaAtual={PaginaAtual}&" & _
       "verif=1&" & _
       "hidenviou=sim&" & _
       "QtdRegistros={QtdRegistros}' style=" & chr(34) & "text-decoration: none" & chr(34) & "> " & _
	"{Mensagem}</A>"

	strLink = Replace(strLink,"{QtdRegistros}",intQtdMaxLinhas)
	strLink = Replace(strLink,"{1}",local)
	strLink = Replace(strLink,"{2}",palavrachave)
	strLink = Replace(strLink,"{3}",Qtd_itens_encontrados)

	If intPaginaAtual > 1 Then

		strMenu = strLink
		'strMenu = Replace(strMenu,"{PaginaAtual}",1)
		'strMenu = Replace(strMenu,"{Mensagem}","<b> <font color=#ffffff size=2 face=Verdana><span style=" & chr(34) & "background-color:#0c4ea2;border:#0c4ea2; border-right-style:solid; border-left-style:solid; border-top-style: solid; border-bottom-style: solid;  border-right-width:2px;  border-left-width:2px; border-top-width: 2px; border-bottom-width: 2px; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;" & chr(34) & "> |< </span></font></b>")
		'strMenu = strMenu & " " & strLink
		strMenu = Replace(strMenu,"{PaginaAtual}",intPaginaAtual - 1)
		strMenu = Replace(strMenu,"{Mensagem}","<b> <font color=#ffffff size=2 face=Verdana><span title=" & chr(34) & "Página Anterior" &  chr(34) & " style=" & chr(34) & "background-color:#0c4ea2;border:#0c4ea2; border-right-style:solid; border-left-style:solid; border-top-style: solid; border-bottom-style: solid;  border-right-width:2px;  border-left-width:2px; border-top-width: 2px; border-bottom-width: 2px; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;" & chr(34) & "> < </span></font></b>")
	Else

		strMenu = strMenu & "    "

	End If

	limitador = intpaginaatual + 10
	pagetot = inttotpaginas + 1

	if intpaginaatual > 0 then

		intpaginacont = 1

		do until intpaginacont = limitador

			if intpaginacont <> intpaginaatual and intpaginacont > (intpaginaatual - 5) and intpaginacont < pagetot  then

				strMenu = strMenu & " " & strLink
				strMenu = Replace(strMenu,"{PaginaAtual}",intPaginacont)
				strMenu = Replace(strMenu,"{Mensagem}","<b><font color=#ffffff size=2 face=Verdana><span title=" & chr(34) & "Página " & cstr(intpaginacont) & chr(34) & " style=" & chr(34) & "background-color:#0c4ea2;border:#0c4ea2; border-right-style:solid; border-left-style:solid; border-top-style: solid; border-bottom-style: solid;  border-right-width:2px;  border-left-width:2px; border-top-width: 2px; border-bottom-width: 2px; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;" & chr(34) & "> " & cstr(intpaginacont) & " </span></font></b>")

			else

				if intpaginacont = intpaginaatual then
				strMenu = strMenu & "<b> <font color=#e3ba15 size=2 face=Verdana><span title=" & chr(34) & "Página " & cstr(intpaginacont) & chr(34) & " style=" & chr(34) & "background-color:#0c4ea2;border:#0c4ea2; border-right-style:solid; border-left-style:solid; border-top-style: solid; border-bottom-style: solid;  border-right-width:2px;  border-left-width:2px; border-top-width: 2px; border-bottom-width: 2px; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;" & chr(34) & "> " & cstr(intpaginacont)& " </span></font></b>"
				menor = intpaginaatual * 20 - 19
				maior = intpaginaatual * 20

					if maior > intitenspagina then

						maior = intitenspagina

					end if

					if intitenspagina = 0 then

						menor = 0

					end if

				end if

			end if

			intpaginacont = intpaginacont + 1

		loop

	end if

	stritens = "<TABLE width=" & chr(34) & "100%px" & chr(34) & " align=" & chr(34) & "center" & chr(34) & ">"&_
    "<TR><td height=" & chr(34) & "30" & chr(34) & " align=" & chr(34) & "center" & chr(34) & " valign=" & chr(34) & "center" & chr(34) & " style=" & chr(34) & "background-color:#ffffff; " & chr(34) & ">"&_
    "<BR>"
	'"<B><font color=#0c4ea2 size=2 face=Verdana>Página(s) </font></B>"

	If intPaginaAtual < intTotPaginas Then

		strMenu = strMenu & " " & strLink
		strMenu = Replace(strMenu,"{PaginaAtual}",intPaginaAtual + 1)
		strMenu = Replace(strMenu,"{Mensagem}","<b> <font color=#FFFFFF size=2 face=Verdana><span title=" & chr(34) & "Próxima Página" &  chr(34) & " style=" & chr(34) & "background-color:#0c4ea2;border:#0c4ea2; border-right-style:solid; border-left-style:solid; border-top-style: solid; border-bottom-style: solid;  border-right-width:2px;  border-left-width:2px; border-top-width: 2px; border-bottom-width: 2px; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;" & chr(34) & "> > </span></font></b>")
		'strMenu = strMenu & " " & strLink
		'strMenu = Replace(strMenu,"{PaginaAtual}",intTotPaginas)
		'strMenu = Replace(strMenu,"{Mensagem}","<b> <font color=#FFFFFF size=2 face=Verdana><span style=" & chr(34) & "background-color:#0c4ea2;border:#0c4ea2; border-right-style:solid; border-left-style:solid; border-top-style: solid; border-bottom-style: solid;  border-right-width:2px;  border-left-width:2px; border-top-width: 2px; border-bottom-width: 2px; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px;" & chr(34) & "> >| </span></font></b>")

	Else

		strMenu = strMenu & "   "

	End If

	Menu_Navegacao = "<div id=" & chr(34) & "Bloco_INFO_Falta_Empresa" & chr(34) & " >" &_
					 "<div style=" & chr(34) & "padding:10px;padding-left:60px;padding-right:50px;" & chr(34) & " >" &_
					 "<div style=" & chr(34) & "float:left;" & chr(34) & " ><img src=" & chr(34) & "Images/Info_Busca2.png" & chr(34) & " border=" & chr(34) & "0" & chr(34) & " /></div>"&_
					 "<div style=" & chr(34) & "float:right;text-align:right;" & chr(34) & " >Sentiu falta da empresa que você está procurando?<BR><a title=" & chr(34) & "Cadastre Uma Empresa" &  chr(34) & " href=" & chr(34) & "Cadastra_Empresa.asp" & chr(34) & " >Cadastre uma empresa. É Grátis!</a></div>"&_						 
					 "</div>"&_
					 "</div><BR>" & stritens &_
                        "{Menu}</TD></TR>" & _
                        "</TABLE>"

	Menu_Navegacao = Replace(Menu_Navegacao,"{Menu}",strMenu)

End Function

Function Busca_Nome_Categoria(codigo,nivel)

	Dim objConexao
	Dim objTabela
	Dim strConsulta
	Dim strCategoria

	strCategoria = "CODIGO_CATEGORIA_" & nivel

  		strConsulta = "SELECT TAG FROM CATEGORIAS_NV1 WHERE CODIGO = (SELECT {1} FROM CATEGORIAS WHERE CODIGO_EMPRESA = {2}) " &_
				  "UNION SELECT TAG FROM CATEGORIAS_NV2 WHERE CODIGO = (SELECT {1} FROM CATEGORIAS WHERE CODIGO_EMPRESA = {2}) " &_
				  "UNION SELECT TAG FROM CATEGORIAS_NV3 WHERE CODIGO = (SELECT {1} FROM CATEGORIAS WHERE CODIGO_EMPRESA = {2}) " &_
				  "UNION SELECT TAG FROM CATEGORIAS_NV4 WHERE CODIGO = (SELECT {1} FROM CATEGORIAS WHERE CODIGO_EMPRESA = {2}) " &_
				  "UNION SELECT TAG FROM CATEGORIAS_NV5 WHERE CODIGO = (SELECT {1} FROM CATEGORIAS WHERE CODIGO_EMPRESA = {2}) "
	strConsulta = Replace(strConsulta,"{1}",strCategoria)
	strConsulta = Replace(strConsulta,"{2}",codigo)

	on error resume next
	Set objConexao = Abre_Conexao
	trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR TAG CATEGORIA - Codigo_Busca.asp)"	  	  	
	Set objTabela  = Abre_Recordset(strConsulta, objConexao)
	trata_erro "Pesquisa no Banco de Dados (BUSCAR TAG CATEGORIA - Codigo_Busca.asp)"
	objtabela.Open strConsulta, objConexao, 3, 3

	if objTabela.EOF then

		Busca_Nome_Categoria = ""

	else		

		Busca_Nome_Categoria = objTabela("TAG")

	end if

	Fecha_Conexao objConexao

end Function

Function Verifica_Apostrofo (palavra)

	Verifica_Apostrofo = Replace(palavra,"'","''")

End Function


function linksCompartilha ()

	Dim strlocal
	Dim strpalavrachave

		if (Request.Form("hidenviouformulario") = "Sim") or (Request.QueryString("hidenviou") = "sim") then


			if request.QueryString("verif") <> 1 then

				With Request

					strlocal  		= Verifica_Apostrofo(trim(CStr(.Form("txtlocal"))))
					strpalavrachave = Verifica_Apostrofo(trim(Cstr(.Form("txtpalavrachave"))))

				End With

			else

				With Request

					strlocal  = trim(CStr(.QueryString("local")))
					strpalavrachave = Cstr(.QueryString("palavrachave"))

				End With 

			end if 

		end if

	linksCompartilha = "<script type=" & chr(34) & "text/javascript" & chr(34) & ">"&_
	"compartilha({" & chr(34) & "twitter" & chr(34) & ":" & chr(34) & "sim" & chr(34) & "," & chr(34) & "facebook" & chr(34) & ":" & chr(34) & "sim" & chr(34) & "," & chr(34) & "orkut" & chr(34) & ":" & chr(34) & "sim" & chr(34) & "," & chr(34) & "gplus" & chr(34) & ":" & chr(34) & "sim" & chr(34) & "," & chr(34) & "email" & chr(34) & ":" & chr(34) & "sim" & chr(34) & "," & chr(34) & "print" & chr(34) & ":" & chr(34) & "sim" & chr(34) & "," & chr(34) & "modelo" & chr(34) & ":" & chr(34) & "icone" & chr(34) & "," & chr(34) & "emailE" & chr(34) & ":" & chr(34) & "contato@guiatelesul.com.br" & chr(34) & "," & chr(34) & "tamanho" & chr(34) & ":" & chr(34) & "grande" & chr(34) & "," & chr(34) & "url" & chr(34) & ":" & chr(34) & "http://www.guiatelesul.com.br/busca.asp?hidenviou=sim&verif=1&palavrachave=" & strpalavrachave & "&local=" & strlocal & chr(34) & "," & chr(34) & "titulo" & chr(34) & ":" & chr(34) & "GuiaTeleSul.com.br - 100% Sul / Centro Sul Fluminense" & chr(34) & "});"&_
	"</script>"

end function

function formatarcep(cep)

	formatarcep = "CEP " & left(cep,2) & "." & left(right(cep,6),3) & "-" & right(right(cep,6),3)

end function

Function montafiltro(strConsulta2,strPalavrachave,strLocal,qtdresult)

	Dim objConexao2
	Dim objTabela2
	Dim arrayCategorias
	Dim arrayCidades
	Dim TCategorias
	Dim TCidades
	Dim j
	Dim g
	Dim p
	Dim q
	Dim k
	Dim tmp
	Dim y
	Dim x
	Dim wCA
	Dim wCI
	Dim i
	Dim aux
	Dim aux2      
	Dim Caux
	Dim Caux2
	Dim arrayLocal	  
	Dim NVCategoria 
	Dim ListaCategorias
	Dim ListaCidades



		strConsulta2 = Replace(strConsulta2,"ORDER BY TIPO_ANUNCIO DESC, NEWID()"," ")

		on error resume next
		Set objConexao2 = Abre_Conexao
		trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"	  	  	
		Set objTabela2  = Abre_Recordset(strconsulta2, objConexao2)
		trata_erro "Pesquisa no Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"	

		'-------------------------------------------------------------------------------------------

		TCategorias = "G"		

		TCidades = "G"

		For i = 1 To qtdresult

			TCategorias = TCategorias & ";" & Busca_Nome_Categoria(objTabela2("CODIGO"),"1")		

			TCidades = TCidades & ";" & objTabela2("CIDADE")

			objTabela2.movenext

			If objTabela2.EOF Then Exit For	

		next

		Fecha_Conexao objConexao2

		arrayCategorias = Split(TCategorias,";")
		arrayCidades = Split(TCidades,";")

			for x = lbound(arrayCategorias) to ubound(arrayCategorias)

				 for y = lbound(arrayCategorias) to ubound(arrayCategorias) - 1

					 if arrayCategorias(y) > arrayCategorias(y + 1) then
					 tmp = arrayCategorias(y)
					 arrayCategorias(y) = arrayCategorias(y + 1)
					 arrayCategorias(y + 1) = tmp
					 end if

				 next

			next

			for x = lbound(arrayCidades) to ubound(arrayCidades)

				 for y = lbound(arrayCidades) to ubound(arrayCidades) - 1

					 if arrayCidades(y) > arrayCidades(y + 1) then
					 tmp = arrayCidades(y)
					 arrayCidades(y) = arrayCidades(y + 1)
					 arrayCidades(y + 1) = tmp
					 end if

				 next

			next


			for j = 0 To qtdresult

				for g = 0 To qtdresult

					if (arrayCategorias(j) = arrayCategorias(g)) and (j <> g) then

						arrayCategorias(g) = ""

					end if

					if (arrayCidades(j) = arrayCidades(g)) and (j <> g) then

						arrayCidades(g) = ""

					end if

				next

			next

			wCA = 0
			wCI = 0

			for q = 0 To qtdresult

				if len(arrayCategorias(q)) > 2 then

					wCA = wCA + 1

					ListaCategorias = ListaCategorias & "<dt><a title=" & chr(34) & "Apenas " & arrayCategorias(q) &  chr(34) & " href=" & chr(34) & "busca.asp?hidenviou=sim&verif=1&palavrachave=" & arrayCategorias(q) & "&local=" & strLocal & chr(34) & ">" & arrayCategorias(q) & "</a></dt><BR>"

				end if

				if len(arrayCidades(q)) > 2 then

					wCI = wCI + 1

					ListaCidades = ListaCidades & "<dt><a title=" & chr(34) & "Apenas " & arrayCidades(q) &  chr(34) & " href=" & chr(34) & "busca.asp?hidenviou=sim&verif=1&local=" & buscaestado(arrayCidades(q)) & "&palavrachave=" & strPalavraChave & chr(34) & ">" & arrayCidades(q) & "</a></dt><BR>"

				end if

			next	

				%>

					<script type="text/javascript" language="javascript">

						document.getElementById('mostraoutros1').innerHTML = 'Com Email e Site<BR>';

						document.getElementById('mostraoutros2').innerHTML = 'Com Email<BR>';

						document.getElementById('mostraoutros3').innerHTML = 'Com Site<BR>';

					</script>

				<%

					%>

						<script type="text/javascript" language="javascript">

							document.getElementById('mostracategorias').innerHTML = '<%= ListaCategorias %>';

							document.getElementById('mostraqtdcategorias').innerHTML = '(<%= wCA %>)';

						</script>

					<%

					%>

						<script type="text/javascript" language="javascript">

							document.getElementById('mostracidades').innerHTML = '<%= ListaCidades %>';

							document.getElementById('mostraqtdcidades').innerHTML = '(<%= wCI %>)';

						</script>

					<%

end function

  %>

 

Como poderia melhorar esse código?

Uso banco de dados SQL SERVER.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, que código imenso !

 

Tudo isso é uma página só ou você colocou os includes também nessa postagem ?

 

Vinicius é uma página só mesmo.

Na verdade existe uma página .asp que possui essa página ai descrita como include.

Gostaria muito de melhorar esse código de busca.

Será que poderia me ajudar com algumas dicas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Começei a mexer um pouco no código, acho que dá para ter uma ideia do que pode melhorar:

 

on error resume next
Dim QTD, Local_Busca, LocalGeral, PalavraChaveGeral

function Busca_Empresa ()

Const QTD_MAX_LINHAS = 20
Const PRIMEIRA_PAGINA = 1

Dim objConexao, objTabela, strConsulta, strlocal, strpalavrachave, arrayLocal, NVCategoria, intcontador, intQtdMaxLinhas, intPaginaAtual, i, strRet, intposicao, strlink, aux, aux2, Caux, Caux2, Qtd, QtdRecord
Set objConexao = Abre_Conexao
aux = 0
Caux = 0
if (Request.Form("hidenviouformulario") = "Sim") or (Request.QueryString("hidenviou") = "sim") then
	if request.QueryString("verif") <> 1 then
		With Request
			strlocal = Verifica_Apostrofo(trim(CStr(.Form("txtlocal"))))
			strpalavrachave = Verifica_Apostrofo(trim(Cstr(.Form("txtpalavrachave"))))
			intQtdMaxLinhas = CInt(.QueryString("QtdRegistros"))
			intPaginaAtual = CInt(.QueryString("PaginaAtual"))
			LocalGeral = Verifica_Apostrofo(trim(CStr(.Form("txtlocal"))))
			PalavraChaveGeral = Verifica_Apostrofo(trim(Cstr(.Form("txtpalavrachave"))))
		end With
	else
		With Request
			strlocal = trim(CStr(.QueryString("local")))
			strpalavrachave = Cstr(.QueryString("palavrachave"))
			intQtdMaxLinhas = CInt(.QueryString("QtdRegistros"))
			intPaginaAtual = CInt(.QueryString("PaginaAtual"))
			LocalGeral = trim(CStr(.QueryString("local")))
			PalavraChaveGeral = Cstr(.QueryString("palavrachave"))
		end With 
	end if 
       if strpalavrachave = "" and strlocal <> "" then
		strConsulta = "SELECT NOME,SIGLA_ESTADO FROM CIDADES"
		trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR NOME E SIGLA CIDADES - Codigo_Busca.asp)"                  
		Set objTabela  = Server.CreateObject("ADODB.Recordset")
			trata_erro "Pesquisa no Banco de Dados (BUSCAR NOME E SIGLA CIDADES - Codigo_Busca.asp)"
			objtabela.Open strConsulta, objConexao, 3, 3
			for i = 1 to objTabela.RecordCount
				aux2 = objtabela("NOME") & ", " & objtabela("SIGLA_ESTADO")
				if UCase(aux2) = UCase(strlocal) then
					aux = 1
					exit For
				end if          
				objtabela.movenext
				if objTabela.EOF Then Exit For
			Next
		Fecha_Recordset objTabela

		if aux = 0 then
			strlocal =  buscaestado(strlocal)
		end if 
		if strlocal = ", " then
			strlocal = ""
		else
			arrayLocal = Split(strLocal,", ")
		end if
		strconsulta = ""
		if intQtdMaxLinhas = 0 Then
			intQtdMaxLinhas = QTD_MAX_LINHAS
			if intPaginaAtual  = 0 Then
				intPaginaAtual  = PRIMEIRA_PAGINA
				strConsulta = "SELECT * FROM EMPRESAS WHERE AUTORIZADO_PGTS = 'SIM' AND CIDADE = '{2}' AND ESTADO = '{3}' "&_ "ORDER BY TIPO_ANUNCIO DESC, NEWID() "
				strConsulta = Replace(strConsulta,"{2}",arrayLocal(0))
				strConsulta = Replace(strConsulta,"{3}",arrayLocal(1))
				trata_erro "Criação do Objeto ou no Acesso ao Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"                      
				Set objTabela  = Server.CreateObject("ADODB.Recordset")
                   trata_erro "Pesquisa no Banco de Dados (BUSCAR EMPRESAS - Codigo_Busca.asp)"
				objtabela.Open strConsulta, objConexao, 3, 3
				else
				if strlocal = "" and strpalavrachave <> "" then
					strconsulta = ""
					If intQtdMaxLinhas = 0 Then
						intQtdMaxLinhas = QTD_MAX_LINHAS
					end if
					If intPaginaAtual  = 0 Then
						intPaginaAtual  = PRIMEIRA_PAGINA
					end if
				strConsulta = "SELECT * FROM EMPRESAS, CATEGORIAS C WHERE AUTORIZADO_PGTS = 'SIM' AND CODIGO = C.CODIGO_EMPRESA AND ( "&_

 

 

Nesse select onde parei, acho que dá para muda-lo usando join´s por exemplo, mas é preciso testar a clausula para saber se funionaria no seu caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar um arquivo 'util.asp' por exemplo, com as funções comuns da aplicação, seu código será reduzido pelo menos em algumas linhas.

 

Obviamente deverá dar o include desse arquivo no topo da página para que suas funções sejam reconhecidas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

e não esqueça da estrutura do banco de dados, você precisa ter uma relacionamento entre as tabelas, na verdade, a impôrtancia de uma modelagem de dados bem definida até os mínimos detalhes, como os campos de relacionamentos, um velho ditado diz, que um relacionamento bem definido é a alma do aplicativo, pois daí saem todas as consultas e operações com o banco, influenciando diretamente na otimização e performance do aplicativo , e dependendo do caso pode até usar recordset desconectados.

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.