view demo/outer.ur @ 2174:ce312cad5ecd

Use correct OpenSSL thread safety macros on OS X (closes #209) Create an Autoconf test to determine if pthread_t is a pointer or scalar type, and use the appropriate CRYPTO_THREADID_set macro based on the result.
author Benjamin Barenblat <bbaren at mit.edu>
date Sun, 20 Sep 2015 17:46:07 -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 ()