Como Obter um registro de uma tabela SQL Server com Random
Pessoal, preciso sortear n registros q estão em uma tabela de um Banco de Dados MS Sql Server.
Da maneira q tentei fazer não deu Certo pois nem o RecNo nem o Random funcionaram, segue abaixo o código se alguem puder me ajudar ficarei grato.
Atenciosamente,
Tadeu Rodrigues de Oliveira
sistemas@numerosinformatica.com.br
www.numerosinformatica.com.br
procedure TfrmSorteio.SpeedButton1Click(Sender: TObject);
var
i : integer;
registros : integer;
begin
qrQuestoes.Close;
qrQuestoes.ParamByName(´nMat´).AsString := Combobox1.Text;
qrQuestoes.Open;
qrRegistros.Close;
qrRegistros.ParamByName(´nMat´).AsString := Combobox1.Text;
qrRegistros.Open;
registros := qrRegistrosregistros.Value;
i := 1;
vCondicao := ´´;
Randomize;
while i <= StrToInt(Edit1.Text) do
begin
qrQuestoes.RecNo:=Random(registros);
if i < StrToInt(Edit1.Text) then
vCondicao := vCondicao + ´(codigo = ´ + IntToStr (qrQuestoesCodigo.Value) + ´) or ´
else
vCondicao := vCondicao + ´(codigo = ´ + IntToStr(qrQuestoesCodigo.Value) + ´)´;
i:=i+1;
end;
sqlPerguntas := ´select * from questoes ´ +
´where (materia = ´ + vMateria + ´) and ´ +
´ (´ + vCondicao + ´)´ +
´order by codigo´;
qrPerguntas.Close;
qrPerguntas.SQL.Clear;
qrPerguntas.SQL.Add(sqlPerguntas);
qrPerguntas.Open;
end;
Da maneira q tentei fazer não deu Certo pois nem o RecNo nem o Random funcionaram, segue abaixo o código se alguem puder me ajudar ficarei grato.
Atenciosamente,
Tadeu Rodrigues de Oliveira
sistemas@numerosinformatica.com.br
www.numerosinformatica.com.br
procedure TfrmSorteio.SpeedButton1Click(Sender: TObject);
var
i : integer;
registros : integer;
begin
qrQuestoes.Close;
qrQuestoes.ParamByName(´nMat´).AsString := Combobox1.Text;
qrQuestoes.Open;
qrRegistros.Close;
qrRegistros.ParamByName(´nMat´).AsString := Combobox1.Text;
qrRegistros.Open;
registros := qrRegistrosregistros.Value;
i := 1;
vCondicao := ´´;
Randomize;
while i <= StrToInt(Edit1.Text) do
begin
qrQuestoes.RecNo:=Random(registros);
if i < StrToInt(Edit1.Text) then
vCondicao := vCondicao + ´(codigo = ´ + IntToStr (qrQuestoesCodigo.Value) + ´) or ´
else
vCondicao := vCondicao + ´(codigo = ´ + IntToStr(qrQuestoesCodigo.Value) + ´)´;
i:=i+1;
end;
sqlPerguntas := ´select * from questoes ´ +
´where (materia = ´ + vMateria + ´) and ´ +
´ (´ + vCondicao + ´)´ +
´order by codigo´;
qrPerguntas.Close;
qrPerguntas.SQL.Clear;
qrPerguntas.SQL.Add(sqlPerguntas);
qrPerguntas.Open;
end;
Numeros.info
Curtidas 0