TDataSet

Delphi

30/11/2005

Bom dia a todos

Tem como indexar um determinado campo da tabela diretamente no dataset, ao invez de usar o componente?

Exemplo:
quando clica na coluna do dbgrid os dados da grade ficam em ordem crescente de acordo com a coluna clicada, porem, quero por os dados em ordem na grade, mas nao pelos componentes(TTable, TQuery, TClientDataSet, Etc), e sim, diretamente no DataSet. Isso é possivel ?

desde ja agradeço
Ricardo


Ricardo Oliveira

Ricardo Oliveira

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

30/11/2005

rapaz... hoje eu estou meio devagar... não consegui entender a sua dúvida.

o que você quer dizer com ´diretamente no DataSet´?

TTable -> use índices
TQuery -> use a instrução SQL
TClientDataSet -> você pode usar tanto a instrução SQL, como criar índices ou ainda usar a propriedade IndexFieldNames


GOSTEI 0
Ricardo Oliveira

Ricardo Oliveira

30/11/2005

A verdade é a seguinte:
Criei um componente DBGrid com clique no titulo; bom, até ai normal.
porem, quero fazer uma funcao que ponha os registros em ordem usando diretamente o dataset dos registros e nao passando pelo componente que está vinculado ao datasource da grade !!!
por que ?!? veja bem, nunca vou saber qual componente o ´usuario programador´ irá usar para acessar a base de dados, certo ? então se eu trabalhar diretamente no DataSet dos registros, vou conseguir ordenar os dados independente do componente utilizado.

se nao consegui ser claro, tento explicar de outra forma.


GOSTEI 0
Ramms

Ramms

30/11/2005

só uma pergunta...
pq não no clientdataset ???

se pudesse ser pelo cds era só colocar no ontitleclick isso
DM.cds_seucds.IndexFieldNames := Column.FieldName;


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

30/11/2005

agora entendi... você deveria ter dito que precisa ordenar o Resultset e não o Dataset.

olha... nos componentes que eu já vi que possuem esse recurso é criado um dataset temporário (em memória) e o resultset original é copiado para esse memory dataset e, a partir daí, os dados são manipulados nele.


GOSTEI 0
Ricardo Oliveira

Ricardo Oliveira

30/11/2005

porque a dbgrid ficaria preso no clientdataset ! E se o dbgrid for usado por um programador que nao utiliza o clientedataset ?

é justamente isso que eu nao quero. quero deixar o dbgrid preparado para todos os componentes


GOSTEI 0
Ricardo Oliveira

Ricardo Oliveira

30/11/2005

mas vc seberia como fazer a ordenação dos dados independentemente do componente ?

como faço isso ?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

30/11/2005

isso vai depender de como vc criará seu dataset temporário.


GOSTEI 0
Ricardo Oliveira

Ricardo Oliveira

30/11/2005

obrigado pela ajuda amigao

nem sei por onde começar,
tem alguma dica, exemplos, algum material ?

quebra essa, estou precisando mesmo,


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

30/11/2005

procure pelo componente cxGrid da suite DevExpress. essa grid faz exatamente o que você quer.


GOSTEI 0
Ricardo Oliveira

Ricardo Oliveira

30/11/2005

Muito obrigado pela dica, valeu mesmo...
Ricardo


GOSTEI 0
Ricardo Oliveira

Ricardo Oliveira

30/11/2005

baixei a package que vc citou mas na intalacao da o seguinte erro
package cxLibraryVCLD7 not found

existem varias, menos essa que é requerida
vc conhece um site expecifico para baixá-las ?
ou se vc tiver os arquivos e quizer me enviar !?!
adapternews@ig.com.br


GOSTEI 0
Odacir_z

Odacir_z

30/11/2005

Developer Express Inc.. QuantumGrid o pacote esta com este nome.. [b:aaf4952029]qgrid.v3.2.1.d6.exe[/b:aaf4952029]


GOSTEI 0
POSTAR