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.