Ir para conteúdo

POWERED BY:

Arquivado

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

Filipe_Moraes

erro no randomize!

Recommended Posts

Ola, tenho este codigo para randonizar dados na base de dados, funciona perfeitamente so que as vezes da este eroo:

Tipo de erro:

ADODB.Field (0x80020009)

BOF ou EOF é verdadeiro ou o registo actual foi eliminado; a operação pedida necessita de um registo actual.

/inbrasil/randomize2.asp

 

Como resolvo isso?

 

A seguir, o codigo randomize2.asp:

<%Set Conn = Server.CreateObject("AdoDb.Connection")Conn.provider="Microsoft.Jet.OLEDB.4.0"Conn.connectionstring=Server.Mappath("bd_inbrasil.mdb")Conn.open%><%Set RS = Server.CreateObject("adodb.recordset")SQL = "select * from tb_estados"RS.Open SQL,Conn,3,3%><%RandomizeRandomNumber = Int(Rnd *RS.Recordcount) + 1RS.move RandomNumberresponse.write(RS("estado"))%>
Agradecia a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei que se eu usar um select de todos os registros do BD e depois usar GetRows pra recupar, não dá este erro.Numero de registrosvalor = rs.GetRows()depois pego o maior indice dessa matriz...maior = UBound(valor)Mas como vou usar estes dados depois no randomize para não dar o erro??Agradecia a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

e se você tirar esse +1 do final ???RandomNumber = Int(Rnd *RS.Recordcount) + 1deixar só assim :RandomNumber = Int(Rnd *RS.Recordcount)

Compartilhar este post


Link para o post
Compartilhar em outros sites

da o mesmo erro e sortea sempre o mesmo, tipo, sei que o sistema sortea um numero, neste caso corresponde ao registro, como tenho somente 20 registros ele sorteia um numero maior que este, então dá este erro, então

como faço o seguinte:

<%iRecordCount = RS.RecordCountRandomize()RandomNumber = Int(Rnd *RS.RecordCount) + 1If RandomNumber > iRecordCount  then// aqui colocava uma função para voltar a randonizar denovo, isso não sei fazer, assim evitava o erro.elseend ifRS.move RandomNumber%>
Agradecia a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<%iRecordCount = RS.RecordCountwhile RandomNumber > iRecordCount  thenRandomize()RandomNumber = Int(Rnd * iRecordCount) + 1wendRS.move RandomNumber%>
seguindo a tua linha de pensamento acho q é isso aee de cima......

mas tem alguma coisa mau aí... pq eu tenho um randomize e não me lembro de ter feito isso !

assim q der eu vou olhar.

 

e também tem um lance assim:

 

select top 1 from tabela order by rnd(campoNumerico)

 

mas eu nunca usei !

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo, aquele codigo que eu coloquei la em cima, descobri que ele funciona se for randonizar apenas um registro, como eu estava randonizando 3 de uma so ves com o mesmo codigo, estava dando erro, apenas fiz 3 codigos e funcionou desta forma!!!Obrigado pela ajuda!!

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.