MsxWrite
Diese Anweisung schreibt die Nachrichtenteile in den Nachrichtenkanal. Als Objekt wird der Deskriptor des Nachrichtenkanals, der von ``MsxOpen() zurückgegeben wurde, übergeben. Folgende Nachrichtenteile können geschrieben werden:
-
Damit wird eine neue Nachricht geöffnet. In (var2) muss ein Wert vom Typ
intungleich0übergeben werden, der als Nachrichten-ID übermittelt wird. Anhand der ID kann ein benutzerdefinierter Nachrichtentyp definiert werden. Eine bereits geöffnete Nachricht wird durch diese Operation automatisch geschlossen. -
Damit wird ein neues Element geöffnet. In (var2) muss ein Wert vom Typ
intungleich0angegeben werden, der als Item-Id übermittelt wird. Anhand der ID kann ein benutzerdefinierter Elementtyp definiert werden. Ein bereits geöffnetes Element wird durch diese Operation automatisch geschlossen._MsxItemkann nur verwendet werden, wenn zuvor eine Nachricht geöffnet wurde. -
Damit werden Daten in ein Element geschrieben. In (var2) werden die zu schreibenden Daten übergeben. In (int3) kann die maximale Datenlänge angegeben werden, die die Anzahl der zu schreibenden Bytes bei Werten vom Typ
alphabeschränkt. Alle Datenfelder werden seriell geschrieben._MsxDatakann nur bei einem offenen Element verwendet werden. -
Damit wird die offene Nachricht geschlossen.
Der Rückgabewert ist _rOk, wenn die Operation erfolgreich war.
Beispiel:
tSck # SckConnect('10.1.1.16', 12500);
tMsx # MsxOpen(_MsxSocket | _MsxWrite, tSck);
...
try
{
tMsx->MsxWrite(_MsxMessage, 1);
tMsx->MsxWrite(_MsxItem, 1);
tMsx->MsxWrite(_MsxData, tSender);
tMsx->MsxWrite(_MsxItem, 2);
tMsx->MsxWrite(_MsxData, tAction);
tMsx->MsxWrite(_MsxData, tRecordID);
tMsx->MsxWrite(_MsxEnd, 0);
}
...
tMsx->MsxClose();
tSck->SckClose();
Mögliche Laufzeitfehler:
_ErrHdlInvalid: Der übergebene Deskriptor in (obj) ist ungültig._ErrFldType: Der Wert in (var2) hat nicht den passenden Datentyp._ErrValueInvalid: In (int1) oder (var2) wurde ein falscher Wert übergeben.