5.4 Error Handling
This sample program relies on the LANSA Open default handlers, but if required, error information can be retrieved using LceGetStatus and LceGetMessages. A simple function to display errors will look like this:
Sub DispLceError(iSessionID As Integer, sSource As String)
' this function displays LANSA Open errors
' Note that it only does anything if LceDisplayErrors is off
Dim i As Integer
Dim sErrDesc As String, iErrNo As Long
Dim sMsg As String, nMsgs As Integer
Dim msgBuff As String ' message buffer to contain final message
msgBuff = ""
' Get error status
sErrDesc = String((MESSAGE_LENGTH + 1), Chr$(0))
'----- Important force VB to reserve space for DLL reply
Call LceGetStatus(iErrNo, sErrDesc, MESSAGE_LENGTH)
'--------------------------------------------------
If iErrNo > 0 Then
' prepare header message with error description
msgBuff = "Error : " & Str "1n" & sSource
msgBuff = msgBuff & Chr(13) & sErrDesc & Chr(13) & Chr(13)
' read remaining messages
sMsg = String(MESSAGE_LENGTH * 3, Chr(0))
iRet = LceGetMessageCount(iSessionID, nMsgs)
'------------------------------------------
For i = 1 To nMsgs '
sMsg = String(MESSAGE_LENGTH * 3, Chr(0))
iRet = LceGetMessage(iSessionID, i, sMsg, MESSAGE_LENGTH)
'--------------------------------------------------------
sMsg = sTrim(sMsg) ' sTrim detects null terminated strings
msgBuff = msgBuff + sMsg ' add message to buffer
Next
msgbox msgBuff
End If
End Sub