Página 1 de 1

LETODBF: INDEX FOR condition

Enviado: 11 Jun 2023 12:11
por Linguagemclipper
Error LETO/1003 : Variable does not exist XANO
Deu erro aqui quando foi criar um arquivo de índice temporário com o argumento FOR

Código: Selecionar todos

   SELECT EMP
   cRANDOM1  := ALLTRIM(STR(RAN(9999)))
   fINDEX1   := xTEMP+"TEMP" + cRANDOM1 + INDEXEXT()
   INDEX ON CNPJ+ANO TAG TEMP TO (fINDEX1) ;
         FOR ANO=xANO ;
         ADDITIVE TEMPORARY
O erro dá opção QUIT ou RETRY. Se eu dou RETRY ele cria normalmente.
The FOR expression cannot exceed 250 characters in length. RDDs that do not support a FOR condition when creating indexes generate a runtime error when this option is used.
Achei esse help acima, mas a questão de poder consertar isso seria com o Elchs mesmo, entretanto acho que poderia fazer um error handle para contornar esse erro, alguém sabe como seria isso?

LETODBF: INDEX FOR condition

Enviado: 11 Jun 2023 12:24
por JoséQuintas
DBF, SQL, LETODBF.... é tudo a mesma merd.

Porque usar variável, que não existe no servidor, se pode usar a constante ?

Talvez

Código: Selecionar todos

cFOR := "field->ANO = " + Ltrim( Str( xAno ) )
INDEX FOR &(cFor)
E o filtro não depende mais de variável.

LETODBF: INDEX FOR condition

Enviado: 21 Jun 2023 19:29
por Linguagemclipper
O Elchs me explicou. Os DBFs rodam no servidor onde não tem essa variável aí mesmo sendo pública.
Ele deu a dica de usar as funções no lugar do comando: https://github.com/elchs/LetoDBf/issues/31
Mas, resolví de forma melhor. Coloquei o ano do exercício em um campo do usuário, daí ficou até melhor porque vai dar sempre no mesmo ano que o usuário estava trabalhando e depois ele pode mudar, se quiser. Fica sempre o último exercício utilizado pelo usuário.
Ele também falou da existência de uma função chamada Leto_VAR() que devine uma variável no lado do servidor que seria o que chamou de "universal" porque seria enxergada até por outros sistemas servidos pelo Leto.