<%
'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.










