Indexacao - funcao Descend()

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Jeff
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 03 Mai 2007 10:40
Localização: Parana - Pato Branco

Indexacao - funcao Descend()

Mensagem por Jeff »

Tenho um arquivo indexado da seguinte maneira;
INDEX ON CODCLI+DESCEND(DTOS(DTSAIDA)) TO INDCNF

tentei usar a lib DBFCDX por uma questao de compatibilidade com Visual fox pro, so que agora aparece a mensagem quando tento abrir o arquivo:

Error Base 1001 Undefined Function: DESCEND

Com os indices NTX nao tenho esse problema, ou a funcao DESCEND() nao pode ser utilizada com indices IDX.

alguem pode me ajudar ?


CLIPPER 5.2e / RTLINK / BLINKER 5.0
Dércio_Luiz_Zanatta
Usuário Nível 3
Usuário Nível 3
Mensagens: 153
Registrado em: 11 Jan 2006 15:37
Localização: Ibirubá - RS

Mensagem por Dércio_Luiz_Zanatta »

Ola amigo...
Não costumo usar o Descend(), mas pelo que sei essa função retorna um valor numérico, por isso tente usar assim:

INDEX ON CODCLI+Str(DESCEND(DTOS(DTSAIDA))) TO INDCNF
Espero que funcione...
Um grande abraço...
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Eu acho que se o aplicativo após compilado, deu erro Base 1001 Undefined Function: DESCEND é porque não conhece como função, não adiantaria colocá-la novamente dará um erro. E concordo contigo que o seu retorno é numérico na função em Clipper.

Eu não utilizo o CDX, mas pelo que andei vendo e considerando que o CODCLI é STRING, tenta isto:

INDEX ON CODCLI+STR(DTOS(DTSAIDA),8,0) TAG INDCNF DESCENDING

Vê se resolve e dá um alô...

Um clip-abraço :)Pos
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Amigo,

CODCLI é NUMERICO??? se for, vc tem que transformar antes para CARACTERE...

Utilizo INDEX ON STR(CODFRN)+DESCEND(DTOS(DATEMI)) TAG CHAVE e funciona aki sem erro.

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Janio, então para criar CDX, pode ser utilizado o DESCEND() ?
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Janio, então para criar CDX, pode ser utilizado o DESCEND() ?
Descend() é uma função da biblioteca padrão do Clipper. Ela retorna o mesmo tipo que o argumento, com exceção dos tipos data, em que o tipo devolvido é numérico. Ou seja, com char retorna char, com num retorna num, com logic retorna logic e com date retorna num.

[]'s
Maligno
http://www.buzinello.com/prg
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Pablo César escreveu:Janio, então para criar CDX, pode ser utilizado o DESCEND() ?
Sim. Utilizo muuuuito a função DESCEND() em índices CDX e nunca deu problema, tanto em sistemas CLIPPER e XHABOUR.

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Jeff
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 03 Mai 2007 10:40
Localização: Parana - Pato Branco

Mensagem por Jeff »

Value pelas dicas. problema resolvido. Muito obrigado !!

:xau :))
Avatar do usuário
Zoc
Usuário Nível 1
Usuário Nível 1
Mensagens: 20
Registrado em: 24 Set 2004 13:08
Localização: Leme/SP

Mensagem por Zoc »

Apesar do Jeff não ter comentado como resolveu o problema, eu creio que só faltou colocar O REQUEST no inicio do PRG.

REQUEST DESCEND
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

É Jeff.... você poderia nos contar como resolvestes esse problema ???

:-o
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Buenas......eu particularmente uso o DESCEND e nunca meu deu esses problema é soh seguir o que o Maligno falou.....e nuam tem mais nd de misterio....e ahhhhh eu nunca usei no incio do PRG o REQUEST DESCEND

Clipper 5.3 + DBFCDX

Abraços

Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Eu também nunca tve problemas com o DESCEND() e como menciono nas minhas mensagens, eu sei que é uma função do Clipper mas como não uso CDX, pensei que esta forma de indexação poderia influenciar no gerenciamento desse tipo de índices. Então quer dizer... que toda esta interação que sofreu este tópico, foi por causa de um erro de sintaxe ???. E olha que eu comentei: considerando que o CODCLI é STRING hehe as vezes um mal entendido pode levarnos a um debate inócuo....

hehehe é assim que se aprende... :)Pos
Jeff
Usuário Nível 1
Usuário Nível 1
Mensagens: 5
Registrado em: 03 Mai 2007 10:40
Localização: Parana - Pato Branco

desculpem a falha

Mensagem por Jeff »

meu comando para a indexacao do arquivo ficou assim:

INDEX ON CODCLI+DTOS(DTSAIDA) TO INDCNF DESCENDING

optei por essa solucao, pois no meu caso preciso que as informacoes fiquem agrupadas pelo codigo do cliente (independente do arquivo estar na ordem ascendente ou descendente) sendo que o mais importante e que esteja em ordem descendente pela data de saida da NF.

obs: supondo que DTSAIDA=04/05/2007, a funcao descend(dtsaida) retorna o valor 2777583.

:)Pos :)Pos :)Pos
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Re: desculpem a falha

Mensagem por Pablo César »

Jeff escreveu:supondo que DTSAIDA=04/05/2007, a funcao descend(dtsaida) retorna o valor 2777583
Pensei que o resultado seria: 20070504, eu estou errado ?

Mas enfim, era a sintaxe então o seu problemas, que bom que você resolveu Jeff.

Um clip-abraço :)Pos
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Jeff.

Eu já passei por isso e o motivo (no meu caso) foi o seguinte.

Na rotina de indexação, eu criava a indexação em strings, por ex
indice1="descend(dtos(datavenda))"
indice2="cliente+strzero(recno(),15,0)"
e depois executava o conteúdo das strings (com "&indice1").

Só que, na hora da compilação e linkedição, o "descend" não era considerado como função nem pelo Clipper nem pelo Blinker (porque estava dentro da string) e, na hora de rodar, dava pau.

A saída? No início do programa principal soquei um "a=descend(xptodasilva)" (sem as aspas), aí o Clipper e o Blinker compilavam e likavam o descend() e, na hora de converter o string, sabiam o que fazer.

Eolo
Responder