Zum Hauptinhalt springen

DrvError

Tritt bei der Verwendung des Laufwerkstreibers ein Verarbeitungsfehler auf, wird dieses Ereignis aufgerufen. In dem Ereignis kann eine entsprechende Protokollierung vorgenommen werden. Der Wert in Result kann mit folgenden Konstanten verglichen werden:

Beispiel:

if (tRequestMessageId = _DrvReqError)
{
// read error message
tDrvMsxRead->MsxRead(_MsxItem, tItemResult);
tDrvMsxRead->MsxRead(_MsxData, tRequestResult);
tDrvMsxRead->MsxRead(_MsxItem, tItemErrorText);
tDrvMsxRead->MsxRead(_MsxData, tRequestErrorText);
if (tRequestErrorText != '')
tRequestErrorText # StrCnv(tRequestErrorText, _StrFromUTF8);

// write log
SvcLog(_LogError, false, StrCut('EvtError() - code= ' + CnvAI(tRequestResult) + ' / errorText= ' + tRequestErrorText, 1, 250));
// alternative
DbaLog(_LogInfo, false, StrCut('EvtError() - code= ' + CnvAI(tRequestResult) + ' / errorText= ' + tRequestErrorText, 1, 250));

tDrvMsxWrite # MsxOpen(_MsxSocket | _MsxWrite, tSck);

tDrvMsxWrite->MsxWrite(_MsxMessage, _DrvResError);
tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemHeader); // ItemHeader
tDrvMsxWrite->MsxWrite(_MsxData, 0xF3A49E52); // ProtocolId
tDrvMsxWrite->MsxWrite(_MsxData, 0x00040000); // ProtocolVersion

tDrvMsxWrite->MsxWrite(_MsxEnd, 0);

tDrvMsxWrite->MsxClose();
}