Page 1 of 1

En RED Local generar un indice CDX en PC Local

Posted: Wed Sep 02, 2020 4:35 pm
by Loren
Hola, compañeros:

Tengo una app en red local que funciona muy bien con DBF/CDX. Pero muy ocasionalmente me tira un error del tipo:

Error BASE/1003
No existe la variable: CLA

en esta línea:

Code: Select all

index on nombre tag &(camino+"tempor") to &(camino+"tempor") additive for upper(alltrim(cla)) $ upper(compras->nombre)
En esta línea el programa busca el nombre y filtra en la tabla a través de un índice que crea en el PC Local. Filtro a través de un índice y no un dbsetfilter porque es mucho más rápido.
CAMINO es la ruta de la PC Local
CLA es el nombre de una variable GET donde el usuario introduce un nombre y está declarada PUBLIC

¿ Cuál puede ser el motivo de que este error es ocasional?

Mil gracias.
Saludos.
LORENZO.

Re: En RED Local generar un indice CDX en PC Local

Posted: Wed Sep 02, 2020 5:13 pm
by carlos vargas
si le agregas TEMPORARY el indice te lo crea local y de forma temporal.
prueba indicando M->CLA para indentificarla como una variable, esta variable por lo general debe ser PRIVATE para que no tenga problemas.
ademas debes siempre validar que el contenido de esta variable no se NIL.

INDEX ON <indexExpr> ;
[TAG <cIndexName>] ;
[TO <cIndexFile>] ;
[FOR <lForCondition>] ;
[WHILE <lWhileCondition>] ;
[ALL] ;
[NEXT <nNumber>] ;
[RECORD <nRecNo>] ;
[REST] ;
[EVAL <bBlock>] ;
[EVERY <nInterval>] ;
[UNIQUE] ;
[ASCENDING|DESCENDING] ;
[USECURRENT] ;
[ADDITIVE] ;
[CUSTOM] ;
[NOOPTIMIZE] ;
[TEMPORARY] ;
[USEFILTER] ;
[EXCLUSIVE]