不支持的 dBASE IV 命令、函数和子句

请参阅

几乎所有几百个 dBASE IV 命令和函数以相同的方式在 Visual FoxPro 中工作,兼容程度非常高,对 dBASE IV 1.0 和 1.1 的兼容程度甚至更高。不过,下列命令、函数和子句在 dBASE 和 Visual FoxPro 中是不相同的。

@ ... GET

Visual FoxPro 忽略 dBASE 要求的 @ ... GET 子句。

@ ... SCROLL

Visual FoxPro 忽略 dBASE 的 WRAP 子句。

ACCESS()

dBASE 函数 ACCESS( ) 在 Visual FoxPro 中总是返回 0。

APPEND

Visual FoxPro 忽略 dBASE 中 APPEND 的 NOORGANIZE 子句。

APPEND FROM

Visual FoxPro 忽略 APPEND FROM 的 dBASE NOVERIFY 和 REINDEX 子句。

APPEND FROM ARRAY

Visual FoxPro 忽略了 APPEND FROM ARRAY 的 dBASE PEINBEX 子句。

数组和函数

在程序执行过程中,Visual FoxPro 先查找函数,然后查找数组。如果在 Visual FoxPro 中运行一个 dBASE 程序,并且该程序中有一个与 Visual FoxPro 函数或用户自定义函数同名的数组,Visual FoxPro 执行 Visual FoxPro 函数或用户自定义函数。

BARCOUNT() 函数

BARCOUNT( ) 函数是为了提供与 dBASE 的兼容性。在 dBASE 中,BARCOUNT( ) 函数返回定义的弹出式菜单中菜单栏的数目,不管它是否激活。在 Visual FoxPro 中 BARCOUNT( ) 计算活动弹出式菜单中菜单栏数目。如果在 Visual FoxPro 中定义了一个弹出式菜单但没激活它,BARCOUNT( ) 返回 0。

BEGIN TRANSACTION 命令

Visual FoxPro 仅为数据库表支持该命令,标记事务的开始。使用 ROLLBACK 命令可以回复原始状态。END TRANSACTION 命令保存事务。

BROWSE 命令

Visual FoxPro 忽略 BROWSE 的 dBASE NOORGANIZE 子句。

Visual FoxPro 忽略 BROWSE FOMAT 子句所指定格式文件中的任何初始代码或清理代码。

CALL() 函数

在 Visual FoxPro 中,dBASE 的 CALL( ) 函数产生错误。可用 CALL 代替。

CERROR() 函数

Visual FoxPro 不支持 dBASE 的 CERROR( ) 函数。

CHANGE() 函数

在 VIsual FoxPro 中,dBASE 的 CHANGE( ) 函数总是返回“假”(.F.)。

CLEAR SCREEN 命令

Visual FoxPro 忽略 dBASE 的 CLEAR SCREEN 命令。可用 RELEASE 命令清除屏幕类型变量。

CLOSE PRINTER 命令

dBASE 的 CLOSE PRINTER 命令等同于 Visual FoxPro 的 SET PRINTER TO 命令。

COMPLETED() 函数

在 Visual FoxPro 中,dBASE 的 COMPLETED( ) 函数总是返回“假”(.F.)。

CONVERT 命令

dBASE 的 CONVERT 命令在 Visual FoxPro 中产生错误。

DEXPORT 命令

dBASE DEXPORT 命令在 Visual FoxPro 中产生错误。

DGEN() 函数

dBASE DGEN( ) 函数在 Visual FoxPro 中产生错误。

END TRANSACTION 命令

Visual FoxPro 仅为数据库表支持 END TRANSACTION 命令,保存事务过程中对表所做的更改。

FCREATE() 和 FOPEN( ) 函数

在 dBASE IV 中,FCREATE( )FOPEN( ) 函数的第二个参数可以是“R”(只读),“W”(只写),“A”(只追加),“RW”或“WR”(读写),或者“RA”或“AR”(读和追加)。Visual FoxPro 支持这些文件属性。下表列出了与这些 dBASE 参数相应的 Visual FoxPro 行为。

FCREATE( ) 函数

dBASE 参数 Visual FoxPro 行为
RW 或 WR 以读写权创建文件并设置为 MS-DOS 档案属性。
A 以读写权创建文件并设置为 MS-DOS 档案属性。
RA 或 AR 以读写权创建文件并设置为 MS-DOS 档案属性。
R 以只读权创建文件并设置为 MS-DOS 只读属性。

FOPEN( ) 函数

dBASE 参数 Visual FoxPro 行为
RW 或 WR 以读写权打开文件并将文件指针放到文件头。
A 以只读权打开文件并将文件指针放到文件尾。
RA 或 AR 以读写权打开文件并将文件指针放到文件尾。
R 以只读权打开文件并将文件指针放到文件头。

FLDLIST() 函数

在 dBASE 中,FLDLIST( ) 返回的字段名后跟“->”操作符和表别名。在 Visual FoxPro 中,FLDLIST( ) 返回的字段名后跟一个句点和表别名。

ID() 函数

在 dBASE 中 ID( )返回运行 dBASE 的机器名。在 Visual FoxPro 中 ID( )返回运行 Visual FoxPro 的机器名和机器在网络中的编号。如果没有安装网络,ID( ) 返回机器名和 1。

ISMARKED() 函数

Visual FoxPro 不支持 ISMARKED( ) 函数。

LKSYS() 函数

Visual FoxPro 不支持 LKSYS( ) 函数。

MEMORY() 函数

在 dBASE 中,不带数值参数发出的 MEMORY( ) 函数的返回值与 MEMORY(0) 相同,即 dBASE 的可用内存数量。

在 Visual FoxPro 中,MEMORY( ) 返回可用于运行外部程序 640K 以下的内存数量。

MEMORY(7) 函数

dBASE 函数 MEMORY(7) 在 Visual FoxPro 中总是返回 0。

NETWORK() 函数

dBASE 函数 NETWORK( ) 在 Visual FoxPro 中总是返回“真”(.T.)。

ON SELECTION POPUP 命令

Visual FoxPro 忽略 ON SELECTION POPUP 的 dBASE BLANK 子句。

_PDRIVER 系统内存变量

在 Visual FoxPro 中,如果 _PDRIVER 指定的打印机驱动程序有文件扩展名,必须将文件扩展名包含到打印机驱动程序文件名中。dBASE 假定文件扩展名为 .pr2。只有当打印机驱动程序文件名的扩展名不是 .pr2 时,才需要包含文件扩展名。

PROTECT 命令

dBASE PROTECT 命令在 Visual FoxPro 中产生错误。

RESET 命令

Visual FoxPro 忽略 dBASE RESET 命令。

ROLLBACK 命令

Visual FoxPro 的 ROLLBACK 命令处理数据库表。它把记录回复到发出 BEGIN TRANSACTION 命令之前的状态。

RUN() 函数

Visual FoxPro 不支持 dBASE RUN( ) 函数。可用 RUN 命令代替。

SAVE SCREEN 命令

在 Visual FoxPro 中,过程中 SAVE SCREEN 保存的屏幕为私有。在 dBASE 中,过程中保存的屏幕为公有。

要在 Visual FoxPro 中模拟 dBASE 的方式,定义一个公有变量然后将屏幕保存到该公有变量中。

SET CATALOG 命令

Visual FoxPro 忽略 dBASE SET CATALOG 命令。

SET DBTRAP 命令

Visual Foxpro 忽略 dBASE SET DBTRAP 命令。在 Visual FoxPro 中 DBTRAP 的值总是 OFF。

SET DESIGN 命令

Visual FoxPro 忽略dBASE SET DESIGN 命令。在 Visual FoxPro 中 DESIGN 值总是 ON 。

SET EXCLUSIVE 命令

Visual FoxPro 和 dBASE IV 2.0 版中 SET EXCLUSIVE 的默认值是 ON。dBASE IV 1.5 版的 SET EXCLUSIVE 的默认值是 OFF。

SET FIELDS 命令

在 dBASE 中,可以将 /R 添加到 SET FIELDS 命令的字段中使其只读。Visual FoxPro 忽略这一开关选项。

SET IBLOCK 命令

Visual FoxPro 忽略 dBASE SET IBLOCK 命令。

SET INSTRUCT 命令

Visual FoxPro 忽略 dBASE SET INSTRUCT 命令。在 Visual FoxPro 中 INSTRUCT 的值总是 OFF。

SET LDCHECK 命令

Visual FoxPro 忽略 dBASE SET LDCHECK 命令。在 Visual FoxPro 中 LDCHECK 总是 OFF。

SET MBLOCK 命令

在 dBASE 中,要用 64 乘以 SET MBLOCK 命令为备注字段块大小指定的值。

SET MESSAGE 命令

Visual FoxPro 忽略 SET MESSAGE 中的 dBASE AT 子句。

SET PRECISION 命令

Visual FoxPro 忽略 dBASE SET PRECISION 命令。Visual FoxPro 总是采用 16 位计算。

SET SQL 命令

Visual FoxPro 忽略 dBASE SET SQL 命令。在 Visual FoxPro 中 SQL 总是 ON。

SET TRAP 命令

Visual FoxPro 忽略 dBASE SET TRAP 命令。在 Visual FoxPro 中 TRAP 总是 ON。

SET("BORDER") 命令

Visual FoxPro 返回边界字符。在 dBASE 中,SET("BORDER") 返回边界字符的 ASCII 值。

SET("CATALOG") 命令

在 Visual FoxPro 中,SET("CATALOG") 总是返回 OFF。

SET("DBTRAP") 命令

在 Visual FoxPro 中,SET("DBTRAP") 总是返回 OFF。

SET("DESIGN") 命令

在 Visual FoxPro 中,SET("DESIGN") 总是返回 ON。

SET("FIELDS",1) 命令

在 Visual FoxPro 中,当 FIELDS 设置为 LOCAL 并且 COMPATIBLE 设置为 FOXPLUS 或 OFF 时,不与字段名一起返回别名。

SET("IBLOCK") 命令

在 Visual FoxPro 中,SET("IBLOCK") 总是返回 0。

SET("INSTRUCT") 命令

在 Visual FoxPro 中,SET("INSTRUCT") 总是返回 OFF。

SET("LDCHECK") 命令

在 Visual FoxPro 中,SET("LDCHECK") 总是返回 OFF。

SET("PRECISION") 命令

在 Visual FoxPro 中,SET("PRECISION") 总是返回 16。

SET("SQL") 命令

在 Visual FoxPro 中,SET("SQL") 总是返回 ON。

SET("TRAP") 命令

在 Visual FoxPro 中,SET("TRAP") 总是返回 ON。

SET("VIEW") 命令

在 Visual FoxPro 中,SET("VIEW") 总是返回空字符串 ("")。

SYSPROC 配置选项

在 dBASE 中,可以在 dBASE 配置文件中包含 SYSPROC 配置选项以打开一个过程文件。该过程文件在整个 dBASE 工作期中保持打开状态。

在 Visual FoxPro 中,可以用 SET LIBRARY 打开一个外部 API 库文件。

USE 命令

Visual FoxPro 忽略 USE 中的 dBASE NOSAVE 和 NOLOG 子句。