Zum Hauptinhalt springen

MsxWrite

obj -> MsxWrite(int1, var2[, int3]) : int

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von Clients mit Programmierschnittstelle Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service

Nachrichteninhalt schreiben

Details

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:

  • _MsxMessage Damit wird eine neue Nachricht geöffnet. In (var2) muss ein Wert vom Typ int ungleich 0 ü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.
  • _MsxItem Damit wird ein neues Element geöffnet. In (var2) muss ein Wert vom Typ int ungleich 0 angegeben 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. _MsxItem kann nur verwendet werden, wenn zuvor eine Nachricht geöffnet wurde.
  • _MsxData 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 alpha beschränkt. Alle Datenfelder werden seriell geschrieben. _MsxData kann nur bei einem offenen Element verwendet werden.
  • _MsxEnd 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.