Page 1 of 1

Crear indices en una base temporal

Posted: Tue Oct 02, 2007 7:34 pm
by nolgiati
Hola a todos!!
Estoy teniendo problemas para crear indices en la Pocket en una base temporal. El código que estoy usando es el siguiente:

Code: Select all

Local Indice1
USE (Curdir()+"\STOTEMP.DBF") NEW
ZAP
DBCLOSEALL()

USE (Curdir()+"\STOTEMP.DBF") NEW SHARED ALIAS TEMPORAL
DATABASE oDbfTem
oDbfTem:bEoF:=nil
oDbfTem:GoTop()

SELECT TEMPORAL
INDEX ON TEMPORAL->DESCRIP TO &Indice1
oDbfTem:Close()

USE (Curdir()+"\STOTEMP.DBF") INDEX (&Indice1) NEW SHARED ALIAS TEMPORAL
DATABASE oDbfTem
oDbfTem:bEoF:=nil
oDbfTem:GoTop()
El tema es que me tira error en &Indice1, y si la declaro como privada no me la reconoce.

En que me estoy equivocando??

Gracias a todos!!!

Natalia.

Posted: Tue Oct 02, 2007 8:43 pm
by Antonio Linares
Natalia,

No se puede hacer una macro (&) de una variable local. El lenguaje Clipper no lo permite.

Y por otra parte, no necesitas macros para construir los índices:

Code: Select all

...
INDEX ON TEMPORAL->DESCRIP TO ( CurDir() + "\Indice1" ) 
...
USE (Curdir()+"\STOTEMP.DBF") INDEX ( CurDir() + "\Indice1" ) NEW SHARED ALIAS TEMPORAL 
...

Posted: Wed Oct 03, 2007 1:53 pm
by nolgiati
Muchas gracias Antonio!!

Si, se que no se puede usar macros con una variable local pero el tema es que si declaro una variable privada dentro de mi programa para la pocket me dice que no la encuentra por eso probe esa "burrada", ja!

Saludos!!

Re: Crear indices en una base temporal

Posted: Wed Oct 03, 2007 7:08 pm
by Arturo Lopesoria
Natalia:

Ademas del comentario de Antonio respecto al tipo de variable, segun el codigo que pones como ejemplo tendrias problemas adicionales por intentar indexar un archivo abierto de manera compartida.


nolgiati wrote:Hola a todos!!
Estoy teniendo problemas para crear indices en la Pocket en una base temporal. El código que estoy usando es el siguiente:

Code: Select all

Local Indice1
USE (Curdir()+"\STOTEMP.DBF") NEW
ZAP
DBCLOSEALL()

USE (Curdir()+"\STOTEMP.DBF") NEW SHARED ALIAS TEMPORAL
DATABASE oDbfTem
oDbfTem:bEoF:=nil
oDbfTem:GoTop()

SELECT TEMPORAL
INDEX ON TEMPORAL->DESCRIP TO &Indice1
oDbfTem:Close()

USE (Curdir()+"\STOTEMP.DBF") INDEX (&Indice1) NEW SHARED ALIAS TEMPORAL
DATABASE oDbfTem
oDbfTem:bEoF:=nil
oDbfTem:GoTop()
El tema es que me tira error en &Indice1, y si la declaro como privada no me la reconoce.

En que me estoy equivocando??

Gracias a todos!!!

Natalia.