Executes a calc script against the active database from a file.
Syntax
EsbCalcFile (hDestCtx, hSrcCtx, AppName, DbName, FileName, isCalculate) ByVal hDestCtx As Long ByVal hSrcCtx As Long ByVal AppName As String ByVal DbName As String ByVal FileName As String ByVal isCalculate As Integer
| Parameter | Description |
|---|---|
hDestCtx | VB API context handle of target database on the server. |
hSrcCtx | VB API context handle for calc script file location. The calc script file can reside on the client or on the same server as the target database. |
AppName | Application name for calc script file location. |
DbName | Database name for calc script file location. |
FileName | Name of calc script file. |
isCalculate | Controls calculation of the calc script. If TRUE, the calc script is executed. |
Notes
The calc script must be less than 64 KB long.
If this function succeeds and the calculation is started, it will continue on the server as an asynchronous process after the return from this call. The caller should check at regular intervals to see if the process has completed by calling EsbGetProcessState() until it returns ESB_STATE_DONE.
Return Value
None.
Access
This function requires the caller to have calc privilege (ESB_PRIV_CALC) to the active database.
Example
Declare Function EsbCalcFile Lib "ESBAPIN" (ByVal hDestCtx As Long, ByVal hSrcCtx As Long, ByVal AppName As String, ByVal DbName As String, ByVal FileName As String, ByVal isCalculate As Integer) As Long
Sub ESB_CalcFile ()
Dim sts As Long
Dim AppName As String
Dim DbName As String
Dim FileName As String
Dim Calculate As Integer
Dim hSrcCtx As Long
Dim ProcState As ESB_PROCSTATE_T AppName = "Sample"
DbName = "Basic" '***************************************
' Calc script is an object at the server *
'***************************************
hSrcCtx = hCtx
FileName = "calc"
Calculate = ESB_YES '**********
' Calc File
'**********
sts = EsbCalcFile (hCtx, hSrcCtx, AppName,
DbName, FileName, Calculate) '************************************
' Check process state till it is done
'************************************
sts = EsbGetProcessState (hCtx, ProcState)
Do Until ProcState.State = ESB_STATE_DONE
sts = EsbGetProcessState (hCtx, ProcState)
Loop
End SubSee Also