Zum Hauptinhalt springen

DrvError

DrvError

Aufruf beim Auftreten eines Fehlers

Details

  • Request
  • MessageId: _DrvReqError Id des Ereignisses
  • ItemHeader: _DrvItemHeader Kopf des Datenpakets
  • ProtocolId: 0xF3A49E52 Id des verwendeten Protokolls
  • ProtocolVersion: 0x00040000 Version des verwendeten Protokolls
  • ItemResult: _DrvItemResult Informationsbereich für das Resultat
  • Result: int Fehlerwert
  • ItemErrorText: _DrvItemErrorText Informationsbereich des Fehlertextes
  • ErrorText: alpha Fehlertext
  • Siehe: Verwandte Befehle

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();
}