アクティブ・データベースに対して計算スクリプトを単一の文字列として送信し、オプションで計算スクリプトを実行します。この関数は、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
関連トピック