アクティブ・データベースに対して計算スクリプトを単一の文字列として送信し、オプションで計算スクリプトを実行します。この関数は、EsbBeginCalcを呼び出した後にEsbSendString()を呼び出し、最後にEsbEndCalc()を呼び出すのと同じです。計算を開始することも、または計算スクリプトの確認のみを行いエラーを戻すこともできます。
構文
EsbCalc ( hCtx, isCalculate, cscQuery ) ByVal hCtx As Long ByVal isCalculate As Integer ByVal cscQuery As String
パラメータ | 説明 |
---|---|
hCtx |
VB APIコンテキスト・ハンドル。 |
isCalculate |
計算スクリプトの計算を制御します。TRUEの場合は、計算スクリプトが実行されます。 |
cscQuery |
単一の文字列としての計算スクリプト(64KB未満)。 |
備考
計算スクリプトの文字列は、64KB未満にする必要があります。
この関数が正しく実行され、計算を開始すると、この呼出しから戻った後も、サーバー上で非同期プロセスとして続行します。呼出し元はESB_STATE_DONEが戻されるまでEsbGetProcessState()を呼び出して、プロセスが完了したことを定期的に確認する必要があります。
CalculateフラグがFALSEに設定されている場合、データベースは計算スクリプトの構文チェックのみを行います。
戻り値
なし。
アクセス
この関数を使用するには、呼出し元はアクティブなデータベースに対して計算権限(ESB_PRIV_CALC)を持っている必要があります。
例
Declare Function EsbCalc Lib "ESBAPIN" (ByVal hCtx As Long, ByVal Calculate As Integer, ByVal Script As String) As Long Sub ESB_Calc () Dim sts As Long Dim Script As String Dim Calculate As Integer Dim ProcState As ESB_PROCSTATE_T Script = "CALC ALL;" Calculate = ESB_YES '********** ' Calculate '********** sts = EsbCalc (hCtx, Calculate, Script) '************************************ ' Check process state till it is done '************************************ sts = EsbGetProcessState (hCtx, ProcState) Do Until ProcState.State = ESB_STATE_DONE sts = EsbGetProcessState (hCtx, ProcState) Loop End Sub
関連トピック