Accede a datos Fox sin romper los indices

WinDev tiene una serie de funciones xBase pero tienen la cualidad de que siempre que escribes te rompen los indices *.CDX de Fox.

Pero hay una alternativa que sí funciona: OLE DB

OLE DB es una tecnologia de 32 bits que funciona también en 64.

Lo primero que tienes que hacer es bajarte el driver OLE DB para Fox:

https://www.microsoft.com/en-us/download/details.aspx?id=14839

Una vez instalado prueba el siguiente código:

gctMiConexion is Connection

// Completa valores generales de la conexión
gctMiConexion..User = ""
gctMiConexion..Password = ""
gctMiConexion..Database = ""
gctMiConexion..Access = hOReadWrite 
gctMiConexion..Provider = "VFPOLEDB.1"
gctMiConexion..Server = "localhost"
gctMiConexion..Source = CompleteDir(fExeDir()) + "\dbfs\data1.dbc"
gctMiConexion..ExtendedInfo = "Window Handle=0;Locale Identifier=1033;Mode=3;Prompt=4;Extended Properties=;Mask Password=False;Cache Authentication=False;Encrypt Password=False;OLE DB Services=-1;Collating Sequence=SPANISH;DSN=;DELETED=True"

// Abre la conexión
IF NOT HOpenConnection( gctMiConexion ) THEN
	Info(HErrorInfo())
	Close()
END