Geração de números aleatórios

Delphi

30/12/2003

Estou fazer um teste com geração de numeros aleatorios no qual seja gravado numa tabela. Bom, o que fiz foi o seguinte:

Quando clico no botao para inserir (Query1.Insert) ele cria uma
combinaçao de numeros aleatorios do seguinte codigo:

var
 i: integer;
const
 str = ´0123456789´;
 max = 4;
begin
 for i:= 1 to max do
 begin
  Query1CODIGO.Text:=  Query1CODIGO.Text + str[random(length(str)) + 1];
 end;


** Isso logicamente no OnNewRecord da Query1

Até ai tudo bem, o que quero é gravar este numero gerado pela funçao na tabela, sendo que: caso o numero gerado seja igual ele gere outro novamente e grave este novo que nao existe.

Um abraço

PS: Gostaria do codigo pronto, se possivel..

[b:747098eaff]Título editado pelo Moderador (AZ) - Leia as regras[/b:747098eaff]

Título removido: Preciso de ajuda urgente, pra ontem!!!!!!!


Njunior

Njunior

Curtidas 0

Respostas

Danielclubedelphi

Danielclubedelphi

30/12/2003

- ao invez de atribuir a espressao direta, passe-a primeiro para uma variavel

- coloque uma query, ou crie em tempo de execucao com o sql onde o campo que naum pode repetir seja igual a um parametro:

EX: select codigo, bla, bla, bla
where codigo =: parametro

atribua o valor do parametro:
EX:
query1.ParamByName(´parametro´) := variavel;

Abra:
query1.open;

E se a query aberta naum estiver fazia vc faz o q quiser
EX:
if query.empty then
begin
bla
bla
bla
end

Naum sei se os codigos estao exatos... fiz de cabeça...


GOSTEI 0
POSTAR