Error en visual foxpro

Tengo un problemita al desarrollar mi programita.. Tengo un formulario donde poder elegir los proveedores que quiero ver y/o imprimir.. Al ejecutar en foxpro no me da ningún error.. Me trae los datos en un report super bien.. Ahora, mi problema es en el .exe cuando quiero ver o imprimir los datos de mis proveedores me sale una ventana de "error del sistema" donde dice "la tabla no tiene ningún orden de indice establecido" ya trate de solucionar de todas las formas que se con el index por que creo que ahí es el problema.. Pero no tuve éxito..

1 Respuesta

Respuesta
Con el index no lo arreglarás. Usa set order to y especifica el campo por el cual necesitas ordenar tu tabla.
El error ocurre cuando haces una búsqueda (comando seek()) pero no has establecido en el código el índice (set order to) por cual desear ordenar la tabla.
Puede ser que mi tabla tenga todos los índices creados en tiempo de diseño, pero debo decirle al programa por cuál indice buscar:
local cod as string
cod="12345"
select MiTabla1
set order to MiCampo1
seek (cod)
if found()
   messagebox("Lo encontré. :)")
else
   messagebox("No lo encontré. :(")
Endif
Si a este código no le pongo el set order, generará el error que mencionas.
ya probé con el set order to.. te muestro mas o menos mi codigo
combo1.init
this.rowsource='select prove_nom, prove_cod from C:\DATA\proveedores order by prove_cod into cursor xprov'
vista_previa.click
SELECT xprov
SELECT * FROM C:\DATA\pago_prov WHERE pago_prov.prov_cod=xprov.prove_cod INTO CURSOR pago
SELECT pago
IF !FILE("prov_cod.idx")
<span style="white-space: pre;"> </span>INDEX ON prov_cod TO prov_cod
ELSE
<span style="white-space: pre;"> </span>SET ORDER TO prov_cod
<span style="white-space: pre;"> </span>GO top
REPORT FORM C:\REPORTS\pago_proveedor.frx PREVIEW 
ENDIF
Aquí lo que puedo ver es que el cursor "pago" no tiene el índice que necesita. Obviamente porque no es un cursor modificable. Usa readwrite:
SELECT * FROM C:\DATA\pago_prov WHERE pago_prov.prov_cod=xprov.prove_cod INTO CURSOR pago ReadWrite
La vd es que no tuve éxito... ya no se como hacer.. ya intente de todas formas..
¿Pero observas lo que te mencioné?
En tu código el cursor pago que resulta del sql, es de sólo lectura. No podrás indexar ese cursor para buscar por índices.
Si quieres enviame el proyecto y lo vemos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas