comparison tests/pquery.ur @ 297:59dc042629b9

pquery working with all four types of columns
author Adam Chlipala <adamc@hcoop.net>
date Sun, 07 Sep 2008 13:29:01 -0400
parents 5dc11235129d
children 43f35291433d
comparison
equal deleted inserted replaced
296:5dc11235129d 297:59dc042629b9
1 table t1 : {A : int, B : string, C : float, D : bool} 1 table t1 : {A : int, B : string, C : float, D : bool}
2 2
3 fun lookup (inp : {B : string}) = 3 fun display (q : sql_query [T1 = [A = int, B = string, C = float, D = bool]] []) =
4 s <- query (SELECT * FROM t1 WHERE t1.B = {inp.B}) 4 s <- query q
5 (fn fs _ => return fs.T1) 5 (fn fs _ => return (Some fs.T1))
6 {A = 0, B = "Couldn't find it!", C = 0.0, D = False}; 6 None;
7 return <html><body> 7 return <html><body>
8 A: {cdata (show _ s.A)}<br/> 8 {case s of
9 B: {cdata (show _ s.B)}<br/> 9 None => cdata "Row not found."
10 C: {cdata (show _ s.C)}<br/> 10 | Some s =>
11 D: {cdata (show _ s.D)}<br/> 11 <body>
12 A: {cdata (show _ s.A)}<br/>
13 B: {cdata (show _ s.B)}<br/>
14 C: {cdata (show _ s.C)}<br/>
15 D: {cdata (show _ s.D)}<br/>
16 </body>}
12 </body></html> 17 </body></html>
18
19 fun lookupA (inp : {A : string}) =
20 display (SELECT * FROM t1 WHERE t1.A = {readError _ inp.A : int})
21
22 fun lookupB (inp : {B : string}) =
23 display (SELECT * FROM t1 WHERE t1.B = {inp.B})
24
25 fun lookupC (inp : {C : string}) =
26 display (SELECT * FROM t1 WHERE t1.C = {readError _ inp.C : float})
27
28 fun lookupD (inp : {D : string}) =
29 display (SELECT * FROM t1 WHERE t1.D = {readError _ inp.D : bool})
13 30
14 fun main () : transaction page = return <html><body> 31 fun main () : transaction page = return <html><body>
15 <lform> 32 <lform>
33 A: <textbox{#A}/>
34 <submit action={lookupA}/>
35 </lform>
36
37 <lform>
16 B: <textbox{#B}/> 38 B: <textbox{#B}/>
17 <submit action={lookup}/> 39 <submit action={lookupB}/>
40 </lform>
41
42 <lform>
43 C: <textbox{#C}/>
44 <submit action={lookupC}/>
45 </lform>
46
47 <lform>
48 D: <textbox{#D}/>
49 <submit action={lookupD}/>
18 </lform> 50 </lform>
19 </body></html> 51 </body></html>