Randomizar um registro do banco de dados

Delphi

06/05/2003

Por favor, preciso muito da ajuda dos colegas...

É o seguinte: Estou fazendo um programa que é um clone do
´ Show do Milhão 4 ´ , só que com perguntas sobre o Universo StarWars...

Como eu faço para o sistema escolher aleatoriamente, e sem repetição, as perguntas que já estão gravadas numa tabela paradox ???
(´ O Show do Milhão 4 ´ , é feiro em Acess)...

Já tentei:
num : integer;
.......

Num := (Random(100));

edit1.text := inttostr(Num);

Table1.findkey([edit1.text]);

Ou seja, o sistema faz um sorteio de 1 à 100,
o valor sorteado é armazenado na variável Num,
Esse valor é passado para o edit1( que fica invisível),
E o método FindKey retorna o registro equivalente, amarzenado no edit1.

Só que sempre que eu executo o programa,
ele sempre sorteia o registro número: 1, ou seja, a primeira pergunta sempre é a mesma .

Por favor alguém pode melhorar esse código ???

Ou me mostrar um outro, bem explicadinho, linha por linha com comentários...

Tentei também usar uma query:

Ex: select *
from tab_perguntas
where nivel = a


Tentei desta forma, mais a query me faz uma listagem num DBGRID de todas as perguntas do nível A.

Eu queria que dessa listagem, me fosse apresentado apenas um registro aleatoriamente selecionado.

Por favor, é urgente!!!!!!!!!!!!!


Lbsystems

Lbsystems

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

06/05/2003

Colega,

Crie um outra tabela para armazenar os número que já foram ´sorteados´ e consulte a mesma antes de prosseguir em cada nova pergunta, caso já esteja cadastrada como ´numero sorteado´, faça o sorteio novamente.


GOSTEI 0
Falinden

Falinden

06/05/2003

Coloque a chamada do procedimento Randomize antes de chamar a função Random. Pode ser que ajude na ´randomização´.

....
Randomize;
Num := (Random(100));
...

E, então, vc armazena numa tabela os valores já sorteados como explicou com tamanha propriedade nosso colega Aroldo Zanela.


FAB


GOSTEI 0
POSTAR