Ir para conteúdo

POWERED BY:

Arquivado

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

Geovane Belusso

SQL e delphi 7

Recommended Posts

Pessoal, sou novo aqui no fórum e estou desenvolvendo um sistema para gerenciamento de Jogos esportivos, minha dúvida é a seguinte:

Tenho um form Sorteio que seleciona em que torneio e em que modalidade a equipe está inscrita. (Segue a imagem abaixo).

 

Imagem Postada

 

procedure TfrmSorteio.BitBtn1Click(Sender: TObject);

var

opcaoTorneio, opcaoModalidade, result: string;

vetor1: array [1..5] of integer;

begin

opcaoTorneio:=DBLookupComboBox1.KeyValue;

opcaoModalidade:=DBLookupComboBox2.KeyValue;

With DM do

begin

ADOQuerySorteio.Active:=false;

ADOQuerySorteio.SQL.Clear;

ADOQuerySorteio.SQL.Add('SELECT cod_equipe AS Código, equipe.nome AS Equipe, tecnico.nome AS Técnico, modalidade.nome AS Modalidade ');

ADOQuerySorteio.SQL.Add('from equipe ');

ADOQuerySorteio.SQL.Add('INNER JOIN tecnico ON tecnico.cod_tecnico=equipe.tecnico');

ADOQuerySorteio.SQL.Add('INNER JOIN modalidade ON modalidade.cod_modalidade=equipe.modalidade');

ADOQuerySorteio.SQL.Add(' where torneio = ');

ADOQuerySorteio.SQL.Add( opcaoTorneio );

ADOQuerySorteio.SQL.Add('and modalidade =');

ADOQuerySorteio.SQL.Add( opcaoModalidade );

ADOQuerySorteio.SQL.Add('order by equipe.nome');

ADOQuerySorteio.Active:=True;

end;

end;

Bom, até ai eu consegui, mas agora eu tenho que armazenar o resultado da consulta SQL em um vetor, por exemplo, se tiver 4 equipes, "dizer" pro vetor que seria um array de [1..4] pra depois eu poder trabalhar com ele, alguém tem uma dica pra mim aí?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie um array dinâmico, algo do tipo:

 

procedure TForm1.BitBtn1Click(Sender: TObject);var	lista: array of integer;	x: integer;beginSetLength(lista,4);for x:=0 to Length(lista) - 1 do	lista[x]:=x;for x:=0 to Length(lista) - 1 do	ShowMessage(IntToStr(lista[x]));end;

 

Podendo assim fazer o tamanho que desejar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, a questao de armazenar no vetor eu ja consegui, agora eu queria fazer com que ele sorteasse esses numeros, usar a função random (acho que é isso) nesse vetor, para ele "misturar" esses numeros!

 

vetor1: array [1..5] of integer;

i : integer;

begin

for i:=1 to 5 do

begin

vetor1:=StrToInt(DBGrid1.SelectedField.Text);

DM.ADOQuerySorteio.Next;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode mesmo usar o Randomize e depois o Random, fiz um pequeno exemplo:

 

procedure TForm1.BitBtn1Click(Sender: TObject);var	lista: array of integer;	x, y: integer;beginSetLength(lista,10);for x:=0 to Length(lista) - 1 do	lista[x]:=x + 1;Memo1.Clear;Randomize;for x:=0 to Length(lista) - 1 do	begin	y:=Random(Length(lista) - 1);	Memo1.Lines.Add(IntToStr(lista[y]));	Finalize(lista[y]);	System.Move(lista[y +1], lista[y],(Length(lista) - y -1) * SizeOf(string) + 1);	SetLength(lista, Length(lista) - 1);	end;end;

No caso ele faz o sorteio entre dez números, sendo que não se repetem, precisa apenas de um TMemo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, no exemplo acima ele faz o embaralhar das informações, se ver, ele não repete nenhuma informação...Você precisa ir removendo do ponteiro para que não seja sorteado novamente...

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.