ORDENAR POR NUMERO E DATA

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
ERASMO ANDRIOLI
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 15 Jul 2004 16:15
Localização: Sorriso-MT
Contato:

ORDENAR POR NUMERO E DATA

Mensagem por ERASMO ANDRIOLI »

COLEGAS....


Please... My Help...

Seguinte: Estou fazendo uma indexação assim:

INDEX ON CODIGO + VAL(DTOC(DATA_GAS)) TO SIG_GASD

Estou percebendo que o sistema não está ordenando o arquivo pelo CODIGO + DATA... apenas pelo CODIGO (a data esta ficando fora de ordem)...

Já tentei assim tambem:

INDEX ON CODVEI + VAL(DTOS(DATA_GAS)) TO SIG_GASD

... trocando apenas de DTOC para DTOS... más ai fica mais bagunçado ainda... por favor me ajudem!!!!!

Abraços

Erasmo Andrioli
Sorriso-MT :shock:
Claudio Farias
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 06 Jul 2004 17:50

Mensagem por Claudio Farias »

Erasmo

Tudo bem ??

Me tire uma dúvida, vc está indexando 2 campos numéricos ??

Codigo + Val( ..... )


Claudio Farias
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem por Toledo »

Erasmo,

A chave de indexação de um arquivo de índice de preferência tem que ser do tipo caracter.
Neste caso, se a resposta a pergunta do nosso amigo Cláudio Farias é sim, você tem então que usar a seguinte chave:

INDEX ON STRZERO(CODIGO,6) + DTOS(DATA_GAS) TO SIG_GASD

Na função STRZERO() usei o tamanho 6, mas você pode utilizar o tamanho do campo CODIGO.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Ao Toledo,


Aproveitando a oportunidade, gostaria de fazer uma indagação:

Já indexei campos de DATAS semelhante a este exemplo aqui postado e percebi (não sei se é assim mesmo) que o sistema indexou as DATAS levando em consideração somente os DIAS e não também (como tem que ser) os MESES. Exemplo: Se eu tenho por exemplo as datas:

13/06/2004
15/07/2004
12/07/2004

ele indexou assim:

12/07/2004
13/06/2004
15/07/2004

Pergunto: É assim mesmo, ou estou fazendo algo de errado?


Janio - janioaguiar@yahoo.com.br
Jorge Adourian
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 05 Jul 2004 23:38
Localização: São Paulo-SP-Brasil
Contato:

Mensagem por Jorge Adourian »

Erasmo, siga a dica do Toledo. Lembre-se que indexar DATA usando o VAL() é um grande absurdo, nunca faça isto.

Janio, sempre que indexar por DATA deve-se usar a data invertida [aaaammdd] usando o DTOS() para converte-la.
Até...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Avatar do usuário
kiko
Usuário Nível 3
Usuário Nível 3
Mensagens: 145
Registrado em: 08 Jul 2004 15:24
Localização: Cianorte

Mensagem por kiko »

eu faria assim:

INDEX ON STRZERO(CODIGO,*)+DTOS(DATA_GAS) TO SIG_GASD

onde * eh o tamanho do campo numerico que vc criou no seu banco de dados.....
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem por Toledo »

Janio,

Na chave de indexação um campo DATA deve sempre ser usado com o DTOS().
No seu exemplo:

13/06/2004
15/07/2004
12/07/2004

utilizando DTOS(), ficaria assim:

20040613
20040712
20040715

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Valeu Toledo e amigos do Fórum.


Funcionou beleeeeeezzzzzaaaaaaa!


Janio
Responder