Página 1 de 1

index + descend

Enviado: 05 Mai 2011 16:34
por wagnervidal
Ae galera blz?
antes de converter para harbour eu usava na indexação dessa maneira,

INDEX ON CODIGO+DESCEND(DTOS(INCLUSAO)) TO COMVAIND

agora no harbour nao funciona.
Qual a maneira certa?
Vlw

Re: index + descend

Enviado: 05 Mai 2011 17:55
por alxsts
Olá!
wagnervidal escreveu:agora no harbour nao funciona
Poderia informar se dá alguma mensagem de erro (na compilação ou execução)?

Você colocou a linha Request Descend ?

Re: index + descend

Enviado: 05 Mai 2011 23:02
por wagnervidal
Ola ...
não apresenta erro nenhum.
essa linha Request Descend onde eu coloco ela?

Re: index + descend

Enviado: 06 Mai 2011 00:22
por alxsts
Olá!

Coloque esta linha no início do teu .PRG principal.

Código: Selecionar todos

REQUEST Descend

Function Main()
   // mais código...
Talvez você esteja se perguntando: por que?

Quando você escreve a chave de indexação para uma tabela em seu .PRG, ela é tratada pelo compilador como uma simples string, mesmo que contenha chamadas a outras funções.

Assim, a chamada a uma função que não está numa biblioteca que o linkeditor pesquise por padrão, ficará "mascarada", implícita ou escondida e não será ligada ao executável. Aí, em tempo de execução ocorre erro. Acho estranho não ter acontecido contigo.

Para contornar isso, existe o REQUEST. Ele força a linkedição de um módulo ao executável, mesmo que não haja nenhuma chamada explícita a ele no teu código.

Note que no momento de pesquisar este índice, é necessário usar Descend() também.

Código: Selecionar todos

DbSeek( cCodigo + DESCEND( DTOS( dDtInclusao ) ) )
O fórum dispõe de um recurso de busca. Pesquise.

index + descend

Enviado: 06 Mai 2011 08:32
por Pablo César
Boa explicação Sr. Alexandre ! Você sempre tão atencioso e objetivo.
O fórum dispõe de um recurso de busca. Pesquise.
O que o colega quis dizer que este assunto foi tratado em vários tópicos, por exemplo:

https://pctoledo.org/forum/viewto ... end#p67556
https://pctoledo.org/forum/viewto ... end#p60989