Ir para conteúdo

POWERED BY:

Arquivado

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

MasterDelphi

Fazendo um Ranking em um DBGrid

Recommended Posts

Primeiramente Bom Dia a todos do forum imasters.....

 

Fiz um ranking em meu sistema utilizando o DBGrid com o codigo de sql :

 


MEMB_INFO where '+namecred+' >0 order by '+namecred+' desc');

QueryRanking.Open; linenums:0'>// Ranking CreditosQueryRanking.SQL.Clear;QueryRanking.SQL.Add('SELECT TOP 99999 Memb___id,'+namecred+','+nameresp+','+namevip+',mail_addr from MEMB_INFO where '+namecred+' >0 order by '+namecred+' desc');QueryRanking.Open;

E eu gostaria que na "Column.Index = 0" aparecece o numero do ranking tipo assim:

 

Column 0 | Column 1 | Column 1 | Column 1 |

1-----------Bla-----------Bla-----------Bla

2-----------Bla-----------Bla-----------Bla

3-----------Bla-----------Bla-----------Bla

4-----------Bla-----------Bla-----------Bla

5-----------Bla-----------Bla-----------Bla

..........

..........

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com o SQLServer você precisa trabalhar com o ROWNUM, um pequeno exemplo:

 

--Declara a table tempDECLARE @TEMPASS TABLE(CODIGO INT, NOME VARCHAR(70), ROWNUM INTEGER IDENTITY(1,1))--Insere os registros na tabela tempINSERT INTO @TEMPASSSELECT TOP 10 NUCLIENTE, NMCLIENTEFROM CLIENTE--Lista os registrosselect *from @TEMPASSorder by ROWNUM
Ele vai lista o código do cliente, nome e o n° sequencial, precisa somente adaptar ao seu SQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com o SQLServer você precisa trabalhar com o ROWNUM, um pequeno exemplo:

 

--Declara a table tempDECLARE @TEMPASS TABLE(CODIGO INT, NOME VARCHAR(70), ROWNUM INTEGER IDENTITY(1,1))--Insere os registros na tabela tempINSERT INTO @TEMPASSSELECT TOP 10 NUCLIENTE, NMCLIENTEFROM CLIENTE--Lista os registrosselect *from @TEMPASSorder by ROWNUM
Ele vai lista o código do cliente, nome e o n° sequencial, precisa somente adaptar ao seu SQL.

Deixa eu ver se eu intendi, posso colocar esse codigo no ADOQuery em SQL que vai funcionar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiquei um tempo sem entrar na net poriso nao deu pra eu dar resposta a este topico...Entao é o seguinte, não funcionou ^^!!!Tipo num teria um codigo que fizesse isso não??(Eu falo assim pq vcs ja mexem ja um tempo e tem experiencias na programação...)Ele gerace os numeros na columns 0 ??123456789.....Para minha aplicacao pra ficar pronta esta faltando isso e a parte de enviar e-mails que eu estava com duvidas sobre o componente indy, pq esta na versao antiga (8), estava com alguns problemas, dae me falaram aki no imasters (se nao me engano foi o marcio) pra eu instala o indy novo (9) que iria dar certo...Entao é isso..., vcs estao me ajudando muito ^^.. Fico muito feliz!!!!Obrigao ae e vlws!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Podemos fazer no GridListaDrawColumnCell e com o codigo de inicio:

if Column.Index = 0 then begin

Dae agora em baixo nao sei =( Alguem se prontifica a me ajudar ^^??? :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao quero floodar, é que se nao tiver como fazer isso eu vou parar de tentar fazer... Posta ae se tem como fazer o codigo que gere sequencialmente os numenos na columns 0, se tiver como, dae ja e um meio caminho andado ^^..Se eu tiver enchendo muito o saco de vcs, me desculpe, é so pedir que eu paro heheh, é que eu to doido para acabar meu soft!Vlw ae!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um pequeno exemplo de como poderia fazer, pode baixar aqui, no caso somente vai precisa configurar a conexão e o sql do botão...

Aew funcionou perfeitamente...Mais isso que foi feito no stg grid num tem como ser feito no DBGrid não??Tentei fazer mais como sei muito poco nao consigui...

ADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select TOP ' + Edit1.Text + 'Memb___id,creditos,responsavel,vip,mail_addr');ADOQuery1.SQL.Add('from MEMB_INFO');ADOQuery1.SQL.Add('where creditos >0 order by creditos desc');ADOQuery1.Open; if not ADOQuery1.IsEmpty then begin ADOQuery1.First; while not ADOQuery1.Eof do begin StringGrid1.Cells[0,prox]:=IntToStr(prox); Inc(prox); StringGrid1.RowCount:=prox; ADOQuery1.Next; end; end;

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.