Mercurial > urweb
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>