visual-foxpro开始使用visual-foxpro


备注

Foxpro是由Fox软件在80年代早期创建的(最初是FoxBase - 1984?),并在Mac OS,Unix,DOS,Windows平台上得到支持。它被称为PC上最快的数据库引擎。 不幸的是 ,它于1992年晚些时候被微软收购。微软接手后,1994年Foxpro for DOS(FPD)和Foxpro for Windows(FPW)2.6发布。 1995年底,Foxpro得名“Visual”,平台支持仅限于windows。它也是Foxpro的第一个版本,其中语言被证明是面向对象的。

微软的官方Visual Foxpro(通常简称为VFP)网站将其描述为:

Microsoft®VisualFoxPro®数据库开发系统是一种用于快速创建高性能桌面,富客户端,分布式客户端,客户端/服务器和Web数据库应用程序的强大工具。

虽然它是一种旧语言,但它仍然被认为是为Windows桌面快速创建以数据为中心的应用程序的最简单语言。 如果您需要为Windows桌面创建基于数据的应用程序,那么选择VFP就可以轻松快速地完成。

版本

发布
FPW 2.6a 1994年10月28日
Visual Foxpro 3.0 1995年12月16日
Visual Foxpro 5.0 1997年1月24日
Visual Foxpro 6.0 2000年8月18日
Visual Foxpro 7.0 2002-01-04
Visual Foxpro 8.0 2003-10-25
Visual Foxpro 9.0 2004-12-13
Visual Foxpro 9.0 SP2 2007-10-21

添加全局错误处理程序

在VFP应用程序中捕获未处理错误(异常)的一种简单方法是在主程序开头附近使用ON ERROR命令。

以下ON ERROR命令调用当前程序中名为“errorHandler”的方法。 ERROR(VFP错误号),MESSAGE(VFP错误消息),PROGRAM(当前正在执行的程序的名称)和LINENO(错误的行号)返回的值将传递给errorHandler方法。

ON ERROR DO errorHandler WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
 

一个简单的errorHandler方法可能如下所示。

PROCEDURE errorHandler
    LPARAMETERS tnVFPErrorNumber, tcVFPErrorMessage, tcProcWithError, tnLineNumber

    STORE 'Error message: ' + tcVFPErrorMessage + CHR(13) + ;
        'Error number: ' + TRANSFORM(tnVFPErrorNumber) + CHR(13) + ;
        'Procedure with error: ' + tcProcWithError + CHR(13) + ;
        'Line number of error: ' + TRANSFORM(tnLineNumber) TO lcDetails

    MESSAGEBOX(lcDetails, 16, "Unhandled Exception")

    ON ERROR *
    ON SHUTDOWN
    CLEAR EVENTS

    QUIT
ENDPROC
 

您还可以在其间更改和还原错误处理程序。例如,您希望在某一时刻以独占方式打开文件夹中的所有表,如果您不能,则不想继续:

procedure DoSomethingWithExclusiveLock(tcFolder)
local lcOldError, llInUse, ix && by default these variables have a value of .F.
lcError = on('error') && save current handler
on error llInUse = .T.  && new handler
local array laTables[1]  
for ix=1 to adir(laTables, addbs(m.tcFolder) + '*.dbf'))
   use (addbs(m.tcFolder)+laTables[m.ix,1]) in 0 exclusive
endfor
on error &lcError && restore old handler
if m.llInUse && couldn't get exclusive lock on all tables
   close databases all
   return
endif
* do whatever
endproc
 

提示:有时候,特别是在调试期间,您需要恢复默认错误处理程序,它允许您中断并进入发生错误的代码,然后在出现错误之前的任何地方,临时添加:

on error
 

会这样做。

你好,世界

在所有语言中,传统上第一个例子是打印“Hello World”。在VFP中可能这样做最简单:

? "Hello World"
 

安装或设置

有关获取visual-foxpro设置或安装的详细说明。