<%
	'declaração das variáveis
	Dim qBanner_square_list, qBanner_square_getBanner, getItem, TRBS
	' TRBS = Total Records Banner Square
	Dim sql_cList, sql_getBanner
	
	'Query que populará a lista de banners
	sql_cList = "SELECT" _
				&	" id_banner" _
				& " FROM" _
				&	" smo_banner" _
				& " WHERE" _
				&	" tamanho = 2" _
				& " AND"_
				&	" roles = 1" _
				& " ORDER BY" _
				&	" id_banner" _
				& " ASC;"
			
	'abrir conexão com o banco de dados
	conn.open "sdsn" , "username" , "senha"  ' "datasourcename" , "username" , "senha"
	'criar recordset e fazer a consulta
	set qBanner_square_list = conn.Execute (sql_cList) 
	'Cria o valor total de registros menos 1 para criar o tamanho do array
	TRBS = cint(qBanner_square_list.RecordCount + 1)
	'Define e cria o array
	Dim lista_square()
	reDim preserve lista_square(TRBS)
	
	Dim itemLoopSquare 'Define o contador
	itemLoopSquare = 0 'Cria o contador
	
	'Faz o loop  até o fim da consulta e até o contador chegar ao tamanho do total de registros
	DO UNTIL qBanner_square_list.EOF
		'Grava o id no array
		lista_square(itemLoopSquare) = qBanner_square_list("id_banner")
		'Incrementa o contador em + 1
		itemLoopSquare = itemLoopSquare + 1
		'Pula para o próximo registro
		qBanner_square_list.Movenext
	Loop 'Termina o loop
	
	'pega um banner randomizado
	Dim randASquare
	randomize
	randASquare = int(Rnd * uBound(lista_square)) + 0
	
	getItem = cint(lista_square(randASquare))
	
	'Query que populará a lista de banners
	sql_getBanner = " SELECT " _
					&	"id_banner, " _
					&	"src, " _
					&	"formato, " _
					&	"url " _
					& "FROM " _
					&	"smo_banner " _
					& "WHERE " _
					&	"id_banner = " & getItem & ";"
	
	set qBanner_square_getBanner = conn.Execute(sql_getBanner)
	'pega os dados do banner e guarda em variáveis
	
	Dim banner_square, banner_square_formato, banner_square_url
	
	[b]banner_square = qBanner_square_getBanner("src") 'nome do banner[/b]
	banner_square_formato = cint(qBanner_square_getBanner("formato"))
	banner_square_url = qBanner_square_getBanner("url")
	
		'começar as expressões
	IF banner_square_formato = 1 THEN 'SWF
%>
		<table width="150" border="0" align="center" cellspacing="0" cellpadding="0">
		  <tr>
			<td>
			 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
					codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" 
					width="150" 
					height="150">
				  <param name="movie" value="_img_externas/_publicidade/<%= banner_square %>" />
				  <param name="quality" value="high" />
				  <embed src="_img_externas/_publicidade/<%= banner_square %>" 
							quality="high" 
							pluginspage="http://www.macromedia.com/go/getflashplayer" 
							type="application/x-shockwave-flash" 
							width="150" 
							height="150">
				 </embed>
				</object>
			  </td>
		  </tr>
		</table>
<%
	ELSEIF banner_square_formato =  2 THEN 'IMG
%>
		<table width="150" border="0" align="center" cellspacing="0" cellpadding="0">
		  <tr>
			<td><a href="<%= banner_square_url %>"><img name="Banner_square" alt="" src="_img_externas/_publicidade/<%= banner_square %>" 
			border="0" /></a></td>
		  </tr>
		</table>
<%
	ELSE
%>
		<table width="150" border="0" align="center" cellspacing="0" cellpadding="0">
		  <tr>
			<td><%= banner_square %></td>
		  </tr>
		</table>
<%
	END IF
%>Bom funciona de boa, só que agumas vezes a variável: getItem = cint(lista_square(randASquare)) retorna vasia ae a quaery naum funciona e retorna o erro:
Tipo de erro:
ADODB.Field (0x800A0BCD)
BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.
/asp_sites/smo/web/_includes/_inc_banners/banner_square.asp, line 68
A linha 68 é a que esta em negrito no codigo, ou seja a primeira linha depois da query que retornaria o banner!!!
Bom eu sei que o ASP tem um componente de rotação de banners o ADROTATOR, mas como falei preciso seguir um padrão em um sistema e tenho que fazer igual.
O script com essa lógica funciona perfeitamente no PHP e no ColdFusion, alguém sabe o que pode estar acontecendo de errado?
Eu fiz um codigo bobo para testar a função do script e nuam retorna erro nenhum nunca, sempre a variável volta com um valor segue o teste:
<% Option Explicit Dim random(), cont cont=4 redim preserve random(cont) Dim rand random(0) = "item 0" random(1) = "item 1" random(2) = "item 2" random(3) = "item 3" randomize rand = int(Rnd * uBound(random)) + 0 %> <%= "<h3>" & random(rand) & "</h3>" %>
Só da erro com a consulta no db.
Alguém ajuda?
Valeu
Edição feita por: graffdesign, 05/10/2006, 03:54.


 
	 
					 
			
			 
				
				
				








