Care este cel mai bun mod de a face echivalentul semantic al apelului sistem tradițional de somn() dintr-o rutină Informix SPL? Cu alte cuvinte, pur și simplu "pauză" pentru N secunde (sau milisecunde sau orice, dar secundele sunt bine). Căut o soluție care nu implică legarea unui nou cod (C) sau a unei alte biblioteci în serverul Informix. Acest lucru trebuie să fie ceva ce pot face numai din SPL. O soluție pentru IDS 10 sau 11 ar fi bine.
@RET - Răspunsul "evident" nu mi-a fost evident! Nu știam despre comanda SYSTEM. Mulțumesc! (Și da, eu sunt tipul pe care crezi că sunt.)
Da, este doar pentru scopuri de depanare. Din păcate, CURRENT într-un SPL va întoarce întotdeauna aceeași valoare, setată la intrarea în apel:
"any call to CURRENT from inside the SPL function that an EXECUTE FUNCTION (or EXECUTE PROCEDURE) statement invokes returns the value of the system clock when the SPL function starts."
—IBM Informix Guide to SQL
Împachetarea CURRENT în propria sa subrutină nu vă ajută. Veți primi un răspuns diferit la primul apel al ambalajului dvs. (cu condiția să utilizați ANUL DE FRACȚIE (5) sau alt tip cu o rezoluție suficient de mare pentru a arăta diferența), dar apoi obțineți aceeași valoare înapoi pe fiecare ulterior, ceea ce asigură că orice tip de bucla nu se va termina niciodată.