background image

关于

iFix 的经典问题解答

1:iFIX 中如何使用 vba 开启和停止 wsqlodc 和 alarmsODBC?

Description

The ability to stop or start the SQL task, wsqlodc, and to pause or continue the alarms to
  ODBC  task  used  to  only  be  available  by  launching  Mission  Control  and  manually  controlling 
them. 

The ability to perform this control programmatically using VBA was added as part of a SIM for 
iFix 2.5. The function calls to allow this are not widely documented and are shown below: -

Resolution

Declare Function TurnOnSqlTask Lib "missionvba" (ByVal cmd$) As Long

'Turns on a SQL task.  The cmd$ parameter is the command line passed to the SQL task
'Return of 0 is a success.  Current logged in user must have security rights to turn
'on/off SAC.  If a non-zero error code is returned, you can use the err2str
'utility in the fix base directory to translate the error to a string

Declare Function TurnOffSqlTask Lib "missionvba" () As Long

'Turns off a SQL task.  Return of 0 is a success.  Current logged in user must
'have security rights to turn on/off SAC.  If a non-zero error code is returned,
'you can use the err2str utility in the fix base directory to translate the error to a string

Declare Function PauseAlarmODBC Lib "missionvba" () As Long

'Pauses the AlarmODBC task.  Return of 0 is a success.  Current logged in user does NOT
'have to have security rights.

'This function will execute regardless of the "Allow Operator to Pause Alarm Logging"
'Setting found in the iFIX ODBC Alarm Service Configurator of the System Configuration
'Utility.

Private Declare Function ContinueAlarmODBC Lib "missionvba" () As Long