Geração de números aleatórios
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:
** 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!!!!!!!
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
Curtidas 0
Respostas
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...
- 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