Příklad příjmu zásilky
Příklad v jazyce SQL serveru (Windows):
(funkce pro spolupráci s poštou nevyvolají výjimku - nelze zachytit handlerem)
PROCEDURE `PrijmiMail`();
BEGIN
DECLARE err,i INT;
DECLARE box INT;
DECLARE id_zas,lsize INT;
DECLARE fname CHAR(255);
SET err = InitWBMail('sql602test','');
IF err = 0 THEN BEGIN
SET err = MailOpenInBox(box);
IF err = 0 THEN BEGIN
CALL MailBoxLoad(box,3);
FOR Zas AS CURSOR FOR
SELECT * FROM _Sysext._Inboxmsgs WHERE Subject='Data'
DO
BEGIN
SET id_zas = Zas.id;
CALL MailBoxGetMsg(box,id_zas);
SET lsize = Zas.size;
IF lsize > 0 THEN
// ... práce s textem dopisů
END IF;
CALL MailBoxGetFilInfo(box,id_zas);
SET i = 0;
FOR ZasFil AS CURSOR FOR
SELECT * FROM _Sysext._Inboxfiles WHERE id=id_zas
DO
BEGIN
SET fname = ZasFil.name;
WHILE POSITION('\' IN fname)>0 DO
CALL StrDelete(fname,1,POSITION('\' IN fname));
END WHILE;
SET fname = 'D:\tempdir\wbdata\'||fname;
SET Err = MailBoxSaveFileAs(box,id_zas,i,'',fname);
IF Err > 0 THEN
CALL Log_write('Chyba při ukládání souboru '+int2str(Err));
END IF;
SET i = i+1;
END;
END FOR;
CALL MailBoxDeleteMsg(box,Zas.id,FALSE);
END;
END FOR;
CALL MailCloseInBox(box);
END; ELSE
CALL Log_write('Chyba při otevírání schránky '+int2str(Err));
END IF;
CALL CloseWBMail();
END; ELSE
CALL Log_write('Chyba při inicializaci '+int2str(Err));
END IF;
END
Poznámky:
Procedura nepůjde přeložit, pokud neexistují tabulky pro příjem pošty. Tabulky lze vytvořit např. pomocí funkce MailCreInBoXTables
.