# FoxPro 2

FoxPro (acrónimo de FoxBASE Professional) es un lenguaje de programación orientado a procedimientos (procedures), a la vez que un Sistema Gestor de Bases de datos o Database Management System (DBMS), publicado originalmente por Fox Software y posteriormente por Microsoft, para los sistemas operativos MS-DOS, MS Windows, Mac OS y UNIX.
Aunque FoxPro es un DBMS y como tal soporta relaciones entre las tablas, no se le considera como un Sistema administrador de bases de datos relacionales (o RDBMS), por no soportar las transacciones.
FoxPro es una evolución de FoxBASE, uno de los lenguajes xBase que surgieron como mejoras del dBase de Ashton-Tate, con el que comparten la base sintáctica y la gestión del formato DBF de fichero de base de datos, pero que difieren en la gestión de los campos MEMO y los archivos de índices. Así los ficheros de campo memo de FoxBASE tienen extensión .fpt y presentan una mejor gestión y una mayor resistencia a la corrupción en caso de cuelgue del ordenador. Como la mayoría de dialectos xBASE, FoxBASE es además un compilador que genera ficheros EXE independientes.
Precisamente una de las novedades de FoxPro fueron los archivos de índice múltiple con extensión .cdx. En lugar de tener un archivo por cada índice creado a la tabla de datos DBF, Fox presentaba un fichero único (con la ventaja del ahorro de espacio, algo muy importante en ordenadores basados en disquete donde el disco duro solía estar reservado a empresas), pero además el índice tenía una eficacia notable respecto del resto de competidores, por lo que, gracias a bibliotecas de terceros, devino en estándar de facto de índices para los sistemas xBase.
En aquel entonces la mayoría de equipos se basaban en una interfaz de línea de comandos en modo texto (aunque dispusieran de capacidades gráficas). Un tercer avance de FoxPro es la integración de un sistema de ventanas en su escritorio, que le da un aspecto muy parecido al DESQview (aunque desde luego sin sus capacidades multitarea). Este sistema tenía soporte de mouse, con botones para cerrar las ventanas. Además integra SQL en el lenguaje.

## Historia
### FoxPro 1.0

FoxPro 1.0 para MS-DOS aparece en 1983. Comprende un superconjunto del lenguaje dBASE IV, pero una interfaz completamente nueva más parecida a la de FoxBASE+ para Mac. Esta interfaz se ha mantenido tanto en la orientada a caracteres de MS-DOS y, en forma gráfica, en los productos Windows y Macintosh. El motor sigue siendo el de FoxBASE+
En 1985 se lanzan las versiones 1.01, 1.02 y 1.03 para corregir errores y se comienza a distribuir FoxDoc con FoxPro. Este es básicamente una versión revisada de 'SNAP!, un documentador de código fuente desarrollado por Walter Kennamer que Fox Software había comprado.

### FoxPro 2.0

En julio de 1991 se presenta FoxPro 2.0 para MS-DOS, destinado a revolucionar el mercado xBase. Incorpora como mayor novedad el soporte de SQL y la tecnología Rushmore de optimización de acceso a consultas. Además aporta un generador gráfico de pantallas y un generador de informes.
FoxPro2 fue compilado originalmente en Watcom C++ , que tenía su propio extensor de memoria. FoxPro2 podría acceder memorias expandida y extendida , utilizando casi toda la memoria RAM disponible. Utilizaba algunas interrupciones en la ausencia de controlador de memoria extendida: si no ha sido cargado HIMEM.SYS, FoxPro activaba ese mecanismo.
En junio de 1992 Microsoft realizó la compra de Fox por 173 millones de dólares por otra de las mejoras de FoxPro 2.0 : la tecnología Rushmore (que toma el nombre clave del Monte Rushmore) de optimización de acceso a registros. Pese a tener en marcha su propio desarrollo de un DBMS de escritorio (el actual Microsoft Access), reconoce la superioridad de la tecnología y la integra en toda su línea de productos de base de datos. Inmediatamente saca MS FoxPro 2.0 que sólo se diferencia por tener el logotipo y el aviso de © de Microsoft

### FoxPro 2.5

En 1993 Microsoft lanza FoxPro 2.5 para Windows, la primera versión de FoxPro con soporte de interfaz gráfica. Como añadido se presenta un Distribution kit que permite generar ejecutables para Windows. Su desarrollo estaba prácticamente completo en el momento de la adquisición de Fox por Microsoft y fue puesto en libertad pocos meses después.
En junio de 1993 sale FoxPro 2.5a, con soporte de idiomas internacionales (y de varias líneas de espera de Windows)
En septiembre de 1993 sale FoxPro 2.5b, que añade a las leguas soportadas el griego, polaco, islandés, y checo.

### FoxPro 2.6

En 1993 salen FoxPro 2.6 for Unix y FoxPro 2.6 for Macintosh. La versión para Apple Macintosh, trae la integración en el lenguaje de sentencias y opciones exclusivas del Mac (por compatibilidad, dichas sentencias siguen presentes en Visual Foxpro 6, 7 y 8, pese a no existir versión para Mac OS).
En marzo de 1994 sale FoxPro 2.6 para Windows, que es considerada la última versión de FoxPro propiamente dicha (en adelante abandona DOS y pasa a denominarse Visual FoxPro). Mejora la compatibilidad con dBase con más de 50 sentencias mejoradas, Catalog Manager, soporte de Null, más Wizards, páginas de código y secuencias de ordenación por lenguaje. En agosto de 1994 sale la corrección de errores FoxPro 2.6a.
FoxPro 2.6 for UNIX (FPU26) ha sido instalado en Linux y FreeBSD utilizando la biblioteca de soporte iBCS2 (Intel Binary Compatibility Standard). Varios proyectos Open Source derivados de xBASE incluyen en sus desarrollos el soporte de algunas de las particularidades de FoxPro, como los archivos de índice CDX.

### Visual FoxPro 3.0

El lanzamiento de Visual FoxPro 3.0 supone el fin de FoxPro y el paso de un lenguaje de programación por procedimientos a uno de programación orientada a objetos.
Pese a no ser ya soportado por Microsoft, existe todavía una activa comunidad de programadores y usuarios de FoxPro a nivel internacional, particularmente en Sudamérica y en menor medida, España. De acuerdo con las declaraciones de Alan Griver a la petición MasFoxPro:
    Por algunas de nuestras estimaciones internas, hay más aplicaciones que se ejecutan en FoxPro 2.6 que en VFP y FoxPro 2.6 no ha recibido soporte en muchos años.

## Compatibilidad con sistemas operativos

Versiones por OS :
| Versión | FP 2.0 | FP 2.5 | FP 2.6 |
| MS-DOS | Sí | No | No |
| Windows 3.1 a XP | Sí | No | Sí |
| Macintosh | No | No | Sí |
| SCO UNIX | Sí | Sí | Sí |
| Linux & FreeBSD | No | No | Sí |
| Windows 2000 | No | No | Sí |

## Versiones por fecha

| Versión | VERSIÓN retorna | Tamaño del EXE | Fecha del EXE |
| FPW 2.6a | FoxPro 2.6a for Windows | 2.444 KB | 28 de septiembre de 1994 |
| FPM 2.6a | FoxPro 2.6a for Macintosh | ? kb | Agosto de 1994 |
| FPD 2.6a | FoxPro 2.6a for DOS | 1.788 KB | Agosto de 1994 |
| FPW 2.6 | FoxPro 2.6 for Windows | ? KB | Marzo de 1994 |
| FPM 2.6 | FoxPro 2.6 for Macintosh | ? KB | 1993 |
| FPD 2.6 | FoxPro 2.6 for DOS | ? KB | Marzo de 1994 |
| FPU 2.6 | FoxPro 2.6 for UNIX | 2,3 Mb | 1993 |
| FPW 2.5 | FoxPro 2.5 for Windows | 1,63 Mb | Enero de 1993 |
| FPD 2.0 | FoxPro 2.0 for DOS | 465,86 KB | 1991 |