blob: bbbe2b00d9405e2a19e8e6668a3dc398ce05047f (
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
open Orm
structure T = Table(struct
val cols = {A = local [int] _,
B = local [string] _}
end)
structure S = Table(struct
val cols = {C = T.id,
D = local [float] _}
end)
fun action () =
r1 <- T.create {A = 3, B = "Hi"};
T.save (r1 -- #B ++ {B = "Bye"});
r2 <- T.create {A = 4, B = "Why"};
r3 <- T.create {A = 66, B = "Hi"};
s <- S.create {C = r1.Id, D = 45.67};
ls <- T.list;
ls' <- T.search (T.eq T.cols.B.Col "Hi");
lsS <- S.list;
lsS <- List.mapM (fn r => p <- S.cols.C.Parent r; return (r, p)) lsS;
T.delete r1;
T.delete r2;
T.delete r3;
S.delete s;
return <xml><body>
{List.mapX (fn r => <xml><li> {[r.A]}: {[r.B]}</li></xml>) ls}
<br/>
{List.mapX (fn r => <xml><li> {[r.A]}: {[r.B]}</li></xml>) ls'}
<br/>
{List.mapX (fn (s, ro) => <xml><li> {[s.D]}: {case ro of
None => <xml>No parent</xml>
| Some r => <xml>{[r.B]}</xml>}
</li></xml>) lsS}
</body></xml>
fun main () = return <xml><body>
<form><submit action={action}/></form>
</body></xml>
|