summaryrefslogtreecommitdiff
path: root/tests/sql_option.ur
blob: 0676c907f8fd0bf04c9740ef3d57acf6a1d8acd3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
table t : { O : option int }

fun addNull () =
    dml (INSERT INTO t (O) VALUES (NULL));
    return <xml>Done</xml>

fun add3 () =
    dml (INSERT INTO t (O) VALUES ({Some 3}));
    return <xml>Done</xml>

fun addN r =
    dml (INSERT INTO t (O) VALUES ({Some (readError r.N)}));
    return <xml>Done</xml>

fun main () : transaction page =
    xml <- queryX (SELECT * FROM t)
                  (fn r => case r.T.O of
                               None => <xml>Nada<br/></xml>
                             | Some n => <xml>Num: {[n]}<br/></xml>);
    return <xml><body>
      {xml}

      <a link={addNull ()}>Add a null</a><br/>
      <a link={add3 ()}>Add a 3</a><br/>
      <form>
        Add <textbox{#N}/> <submit action={addN}/>
      </form>
    </body></xml>