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