Mercurial > urweb
view demo/outer.ur @ 1437:493e087f5479
Exit periodic loop if a ROLLBACK fails, to avoid infinite looping when the database server is brought down
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Fri, 18 Mar 2011 09:12:55 -0400 |
parents | 87a7702d681d |
children |
line wrap: on
line source
table t : { Id : int, B : string } PRIMARY KEY Id table u : { Id : int, Link : int, C : string, D : option float } PRIMARY KEY Id, CONSTRAINT Link FOREIGN KEY Link REFERENCES t(Id) fun main () = xml <- queryX (SELECT t.Id, t.B, u.Id, u.C, u.D FROM t LEFT JOIN u ON t.Id = u.Link) (fn r => <xml><tr> <td>{[r.T.Id]}</td> <td>{[r.T.B]}</td> <td>{[r.U.Id]}</td> <td>{[r.U.C]}</td> <td>{[r.U.D]}</td> </tr></xml>); return <xml><body> <table>{xml}</table> <form>Insert into t: <textbox{#Id} size={5}/> <textbox{#B} size={5}/> <submit action={addT}/></form> <form> Insert into u: <textbox{#Id} size={5}/> <textbox{#Link} size={5}/> <textbox{#C} size={5}/> <textbox{#D} size={5}/> <submit action={addU}/> </form> </body></xml> and addT r = dml (INSERT INTO t (Id, B) VALUES ({[readError r.Id]}, {[r.B]})); main () and addU r = dml (INSERT INTO u (Id, Link, C, D) VALUES ({[readError r.Id]}, {[readError r.Link]}, {[r.C]}, {[readError r.D]})); main ()