サーチ…


備考

FoxproはFoxソフトウェアによって80年代初期(FoxBase - 1984?)に作られ、Mac OS、Unix、DOS、Windowsプラットフォームでサポートされています。それはPC上で最も速いデータベースエンジンとして知られていました。 1992年後半、 残念ながら 、Microsoftによって買収されました。 Microsoftが引き継いだ後、1994年にDOS用のFoxpro(FPD)とWindows用のFoxpro(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-08-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日

インストールまたはセットアップ

visual-foxproをセットアップまたはインストールするための詳細な手順。

こんにちは世界

伝統的に、すべての言語で、最初の例は "Hello World"を印刷することです。おそらくそれを行うのはVFPで最も簡単です:

? "Hello World"

グローバルエラーハンドラを追加する

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

これを行うだろう。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow