diff 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
line wrap: on
line diff
--- a/tests/pquery.ur	Sun Sep 07 12:58:33 2008 -0400
+++ b/tests/pquery.ur	Sun Sep 07 13:29:01 2008 -0400
@@ -1,19 +1,51 @@
 table t1 : {A : int, B : string, C : float, D : bool}
 
-fun lookup (inp : {B : string}) =
-        s <- query (SELECT * FROM t1 WHERE t1.B = {inp.B})
-                (fn fs _ => return fs.T1)
-                {A = 0, B = "Couldn't find it!", C = 0.0, D = False};
+fun display (q : sql_query [T1 = [A = int, B = string, C = float, D = bool]] []) =
+        s <- query q
+                (fn fs _ => return (Some fs.T1))
+                None;
         return <html><body>
-                A: {cdata (show _ s.A)}<br/>
-                B: {cdata (show _ s.B)}<br/>
-                C: {cdata (show _ s.C)}<br/>
-                D: {cdata (show _ s.D)}<br/>
+                {case s of
+                  None => cdata "Row not found."
+                | Some s =>
+                        <body>
+                                A: {cdata (show _ s.A)}<br/>
+                                B: {cdata (show _ s.B)}<br/>
+                                C: {cdata (show _ s.C)}<br/>
+                                D: {cdata (show _ s.D)}<br/>
+                        </body>}
         </body></html>
 
+fun lookupA (inp : {A : string}) =
+        display (SELECT * FROM t1 WHERE t1.A = {readError _ inp.A : int})
+
+fun lookupB (inp : {B : string}) =
+        display (SELECT * FROM t1 WHERE t1.B = {inp.B})
+
+fun lookupC (inp : {C : string}) =
+        display (SELECT * FROM t1 WHERE t1.C = {readError _ inp.C : float})
+
+fun lookupD (inp : {D : string}) =
+        display (SELECT * FROM t1 WHERE t1.D = {readError _ inp.D : bool})
+
 fun main () : transaction page = return <html><body>
         <lform>
+                A: <textbox{#A}/>
+                <submit action={lookupA}/>
+        </lform>
+
+        <lform>
                 B: <textbox{#B}/>
-                <submit action={lookup}/>
+                <submit action={lookupB}/>
+        </lform>
+
+        <lform>
+                C: <textbox{#C}/>
+                <submit action={lookupC}/>
+        </lform>
+
+        <lform>
+                D: <textbox{#D}/>
+                <submit action={lookupD}/>
         </lform>
 </body></html>