FoxPro compatibility list

Some people have asked for a list that indicates which features of FoxPro are supported in X#.
The list below represents the status of build 2.17, updated on Sept 1 2023
Some of what FoxPro calls commands are built into the compiler. We call these statements.
Others are implemented in so called User Defined Commands (UDCs). These are defined in an external header file. The compiler compiles these into function calls in the runtime library. For example the SEEK command is translated into a call to the DbSeek() function and the SKIP command is translated into a call to the DbSkip() function.

This list will be updated for each build that adds VFP features.

Statements (built into the compiler)

Feature Available
& supported
? | ?? supported
??? NOT supported
\ | \\ supported
= supported
DECLARE supported
DEFINE CLASS supported
DIMENSION supported
DO CASE supported
DO supported
DO WHILE supported
EXIT supported
FOR .. ENDFOR supported
FOR EACH .. ENDFOR supported
IF .. ELSE .. ENDIF supported
LOCAL supported.
LOOP supported
LPARAMETERS supported
MEMVAR supported
PARAMETERS supported
PRIVATE supported
PUBLIC supported
RETURN supported
TEXT .. ENDTEXT supported
TRY .. CATCH .. FINALLY supported
WITH .. ENDWITH supported

 

Database and Workarea commands.

Some of these only apply to an interactive environment such as VFP.
Some of the not supported commands will be relatively easy to implement
using a UDC and already available functions in the X# runtime.

Feature Available Feature Available
APPEND FROM supported BEGIN TRANSACTION  NOT implemented
APPEND FROM ARRAY supported BLANK  NOT implemented
AVERAGE supported CALCULATE  NOT implemented
CLOSE supported DELETE - SQL NOT implemented
CONTINUE supported DROP TABLE/VIEW  NOT implemented
COPY FILE supported EXPORT  NOT implemented
COPY STRUCTURE supported FLUSH  NOT implemented
COPY STRUCTURE EXTENDED supported FREE TABLE  NOT implemented
COPY TO supported IMPORT  NOT implemented
COPY TO ARRAY supported INSERT - SQL  NOT implemented
COUNT supported OPEN DATABASE  NOT implemented
DELETE supported REPLACE FROM ARRAY  NOT implemented
DELETE FILE supported SELECT - SQL NOT implemented
ERASE supported UPDATE - SQL NOT implemented
GATHER supported VALIDATE DATABASE NOT implemented
GO | GOTO supported    
INDEX ON supported    
LOCATE supported    
PACK supported    
RECALL supported    
REINDEX supported    
REPLACE supported    
SCAN .. ENDSCAN supported    
SCATTER supported    
SEEK supported    
SELECT supported    
SET (variations) partially supported    
SKIP supported    
SORT supported    
SUM supported    
TOTAL supported    
UNLOCK supported    
USE supported    
ZAP supported    

 

Other Commands

Most of these commands have either to do with the VFP IDE or with the VFP UI Classes

Feature Available   Feature Available   Feature Available
CLEAR supported   BEGIN TRANSACTION NOT impl   ACTIVATE (all variations) n/a
DEFINE (other variations) supported   CD / CHDIR NOT impl   APPEND (other variations) n/a
ERASE supported   COPY (other variations) NOT impl   BROWSE n/a
NODEFAULT supported   EJECT NOT impl   BUILD n/a
QUIT supported     ERROR NOT impl   CANCEL n/a
RELEASE memvars supported   EXPORT NOT impl   CHANGE n/a
RESTORE FROM supported     FLUSH NOT impl   CLOSE MEMO n/a
RUN supported    HELP NOT impl   COMPILE n/a
SAVE TO supported    KEYBOARD NOT impl   CREATE (all variations) n/a
SCROLL supported   LABEL NOT impl   DEACTIVATE (all variations) n/a
SET (global state) partially supported   MD | MKDIR NOT impl   DEBUG n/a
STORE supported    ON (all variations) NOT impl   DEBUGOUT n/a
WAIT supported    PRINTJOB NOT impl   DELETE (other variations) n/a
      PUSH (all variations) NOT impl   DISPLAY (all variations) n/a
      RD | RMDIR NOT impl   DO FORM n/a
      RELEASE (other variations) NOT impl   DOCK n/a
      REMOVE (all variations) NOT impl   DOEVENTS n/a
      RENAME (all variations) NOT impl   EXTERNAL n/a
      REPORT FORM NOT impl   GETEXPR n/a
      RESTORE (other variations) NOT impl   HIDE (all variations) n/a
      ROLLBACK NOT impl   LIST (all variations) n/a
      TYPE  NOT impl   MENU n/a
            MODIFY (all variations) n/a
            PLAY MACRO n/a
            POP (all variations) n/a
            READ EVENTS n/a
            RESUME n/a
            RETRY n/a
            SAVE (other variations) n/a
            SHOW (all variations) n/a
            SIZE (all variations) n/a
            SUSPEND n/a
            ZOOM WINDOW n/a

 

Functions.

Table updated on Sept 4, 2023

Functions that are Functions with different Functions that are Functions that
fully supported parameters (more or less) not available (yet) won't be supported
ABS( ) ACOPY( ) ACLASS( ) ADLLS( )
ACOS( ) ADIR( ) ADBOBJECTS( ) ADOCKSTATE( )
ADATABASES( ) AFIELDS( ) AGETFILEVERSION( ) AERROR( )
ADDBS( ) ALEN( ) ALINES( ) AEVENTS( )
ADDPROPERTY( ) ASC( ) AMEMBERS( ) AFONT( )
ADEL( ) ASCAN( ) ANETRESOURCES( ) AGETCLASS( )
AELEMENT( ) ASORT( ) APRINTERS( ) AINSTANCE( )
AINS( ) CHRSAW( ) ASESSIONS( ) ALANGUAGE( )
ALIAS( ) CHRTRAN( ) ASTACKINFO( ) AMOUSEOBJ( )
ALLTRIM( ) CHRTRANC( ) ATAGINFO( ) APROCINFO( )
ASIN( ) CLEARRESULTSET( ) AUSED( ) ASELOBJ( )
ASQLHANDLES( ) CNTBAR( ) BINTOC() AVCXCLASSES( )
ASUBSCRIPT( ) COL( ) CANDIDATE( ) BAR( )
AT( ) DAY( ) CEILING( ) BARCOUNT( )
AT_C( ) DIRECTORY( ) CNTPAD( ) BARPROMPT( )
ATAN( ) DISKSPACE( ) COMPILE() BINDEVENT( )
ATC( ) EVALUATE( ) COMPOBJ( ) COMARRAY( )
ATCC( ) INT( ) CPCONVERT( ) COMCLASSINFO( )
ATCLINE( ) MAX( ) CPCURRENT() COMPROP( )
ATLINE( ) MCOL( ) CREATEBINARY( ) COMRETURNERROR( )
ATN2( ) MDOWN( ) CREATEOFFLINE( ) CPCURRENT( )
BETWEEN( ) MIN( ) CTOBIN( ) DDEAbortTrans( )
BINTOC( ) OBJNUM( ) CTOT( ) DDEAdvise( )
BITAND( ) OBJVAR( ) CURSORGETPROP( ) DDEEnabled( )
BITCLEAR( ) OEMTOANSI( ) CURSORSETPROP( ) DDEExecute( )
BITLSHIFT( ) SQRT( ) CURSORTOXML( ) DDEInitiate( )
BITNOT( ) STRTRAN( ) CURVAL( ) DDELastError( )
BITOR( ) TYPE( ) DEFAULTEXT( ) DDEPoke( )
BITRSHIFT( )   DIFFERENCE( ) DDERequest( )
BITSET( )   DisplayPath( ) DDESetOption( )
BITTEST( )   DRIVETYPE( ) DDESetService( )
BITXOR( )   DROPOFFLINE( ) DDESetTopic( )
BOF( )   FLDLIST( ) DDETerminate( )
CAPSLOCK( )   FONTMETRIC( ) EDITSOURCE( )
CAST( )   FULLPATH( ) ERROR( )
CDOW( )   GETAUTOINCVALUE( ) EVENTHANDLER( )
CDX( )   GETCP( ) FKLABEL( )
CHR( )   GETCURSORADAPTER( ) FKMAX( )
CMONTH( )   GETDIR( ) GETBAR( )
COS( )   GETFILE( ) GETINTERFACE( )
CPDBF( )   GETFLDSTATE( ) GETPAD( )
CREATEOBJECT( )   GETNEXTMODIFIED( ) GETPEM( )
CREATEOBJECTEx( )   GETOBJECT( ) HOME( )
CTOD( )   GETPICT( ) INKEY( )
CURDIR( )   GETPRINTER( ) ISLEADBYTE( )
DATE( )   GETRESULTSET( ) LASTKEY( )
DATETIME( )   ID( ) MEMORY( )
DBALIAS( )   IMESTATUS( ) MENU( )
DBC( )   INDBC( ) MESSAGE( )
DBF( )   INDEXSEEK( ) MRKBAR( )
DBGETPROP( )   INPUTBOX( ) MRKPAD( )
DBSETPROP( )   ISBLANK( ) MROW( )
DBUSED( )   ISEXCLUSIVE( ) MWINDOW( )
DELETED( )   ISMEMOFETCHED( ) OBJTOCLIENT( )
DESCENDING( )   ISMOUSE( ) ON( )
DMY( )   ISNULL( ) PAD( )
DODEFAULT( )   ISPEN( ) PADPROMPT( )
DOW( )   ISTRANSACTABLE( ) PARAMETERS( )
DTOC( )   KEYMATCH( ) POPUP( )
DTOR( )   LINENO( ) PRINTSTATUS( )
DTOS( )   LOADPICTURE( ) PRMBAR( )
DTOT()   LOCFILE( ) PRMPAD( )
EMPTY( )   LOOKUP( ) PROMPT( )
EOF( )   MAKETRANSACTABLE( ) RDLEVEL( )
EVL( )   NEWOBJECT( ) READKEY( )
EXECSCRIPT( )   NORMALIZE( ) SCOLS( )
EXP( )   OLDVAL( ) SKPBAR( )
FCHSIZE( )   PCOL( ) SKPPAD( )
FCLOSE( )   PEMSTATUS( ) SROWS( )
FCOUNT( )   PRIMARY( ) UNBINDEVENTS( )
FCREATE( )   PROW( ) UPDATED( )
FDATE( )   PRTINFO( ) VARREAD( )
FEOF( )   PUTFILE( ) WBORDER( )
FERROR( )   RAISEEVENT( ) WCHILD( )
FFLUSH( )   REFRESH( ) WCOLS( )
FGETS( )   REQUERY( ) WDOCKABLE( )
FIELD( )   RGBSCHEME( ) WEXIST( )
FILE( )   SAVEPICTURE( ) WFONT( )
FILETOSTR( )   SCHEME( ) WLAST( )
FILTER( )   SEEK( ) WLCOL( )
FLDCOUNT( )   SETFLDSTATE( ) WLROW( )
FLOCK( )   SETRESULTSET( ) WMAXIMUM( )
FLOOR( )   STRCONV( ) WMINIMUM( )
FOPEN( )   STREXTRACT( ) WONTOP( )
FOR( )   SYSMETRIC( ) WOUTPUT( )
FORCEEXT( )   TABLEREVERT( ) WPARENT( )
FORCEPATH( )   TABLEUPDATE( ) WREAD( )
FOUND( )   TTOC( ) WROWS( )
FPUTS( )   TXNLEVEL( ) WTITLE( )
FREAD( )   TXTWIDTH( ) WVISIBLE( )
FSEEK( )   XMLTOCURSOR( )  
FSIZE( )   XMLUPDATEGRAM( )  
FTIME( )      
FV( )      
FWRITE( )      
GETCOLOR( )      
GETENV( )      
GETFONT( )      
GETWORDCOUNT( )      
GETWORDNUM( )      
GOMONTH( )      
HEADER( )      
HOUR( )      
ICASE( )      
IDXCOLLATE( )      
IIF()      
INLIST( )      
INSMODE( )      
ISALPHA( )      
ISCOLOR( )      
ISDIGIT( )      
ISFLOCKED( )      
ISLOWER( )      
ISREADONLY( )      
ISRLOCKED( )      
ISUPPER( )      
JUSTDRIVE( )      
JUSTEXT( )      
JUSTFNAME( )      
JUSTPATH( )      
JUSTSTEM( )      
KEY( )      
LEFT( )      
LEFTC( )      
LEN( )      
LENC( )      
LIKE( )      
LIKEC( )      
LOCK( )      
LOG( )      
LOG10( )      
LOWER( )      
LTRIM( )      
LUPDATE( )      
MDX( )      
MDY( )      
MEMLINES( )      
MESSAGEBOX( )      
MINUTE( )      
MLINE( )      
MOD( )      
MONTH( )      
MTON( )      
NDX( )      
NDX( )      
NTOM( )      
NUMLOCK( )      
NVL( )      
OCCURS( )      
ORDER( )      
OS( )      
PADC( )      
PADL( )      
PADR( )      
PAYMENT( )      
PCOUNT( )      
PI( )      
PROGRAM( )      
PROPER( )      
PV( )      
QUARTER( )      
RAND( )      
RAT( )      
RATC( )      
RATLINE( )      
RECCOUNT( )      
RECNO( )      
RECSIZE( )      
RELATION( )      
REMOVEPROPERTY( )      
REPLICATE( )      
RGB( )      
RIGHT( )      
RIGHTC( )      
RLOCK( )      
ROUND( )      
ROW( )      
RTOD( )      
RTRIM( )      
SEC( )      
SECONDS( )      
SELECT( )      
SET( )      
SIGN( )      
SIN( )      
SOUNDEX( )      
SPACE( )      
SQLCANCEL( )      
SQLCOLUMNS( )      
SQLCOMMIT( )      
SQLCONNECT( )      
SQLDISCONNECT( )      
SQLEXEC( )      
SQLGETPROP( )      
SQLIDLEDISCONNECT( )      
SQLMORERESULTS( )      
SQLPREPARE( )      
SQLROLLBACK( )      
SQLSETPROP( )      
SQLSTRINGCONNECT( )      
SQLTABLES( )      
STR( )      
STRTOFILE( )      
STUFF( )      
STUFFC( )      
SUBSTR( )      
SUBSTRC( )      
TAG( )      
TAGCOUNT( )      
TAGNO( )      
TAN( )      
TARGET( )      
TEXTMERGE( )      
TIME( )      
TRANSFORM( )      
TRIM( )      
TTOD( )      
UNIQUE( )      
UPPER( )      
USED( )      
VAL( )      
VARTYPE( )      
VERSION( )      
WEEK( )      
YEAR( )      

No comments