summaryrefslogtreecommitdiff
path: root/tests/pquery.ur
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pquery.ur')
-rw-r--r--tests/pquery.ur51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/pquery.ur b/tests/pquery.ur
new file mode 100644
index 0000000..4c0e4e4
--- /dev/null
+++ b/tests/pquery.ur
@@ -0,0 +1,51 @@
+table t1 : {A : int, B : string, C : float, D : bool}
+
+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>
+ {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})
+
+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})
+
+fun lookupD (inp : {D : string}) =
+ display (SELECT * FROM t1 WHERE t1.D = {readError _ inp.D})
+
+fun main () : transaction page = return <html><body>
+ <lform>
+ A: <textbox{#A}/>
+ <submit action={lookupA}/>
+ </lform>
+
+ <lform>
+ B: <textbox{#B}/>
+ <submit action={lookupB}/>
+ </lform>
+
+ <lform>
+ C: <textbox{#C}/>
+ <submit action={lookupC}/>
+ </lform>
+
+ <lform>
+ D: <textbox{#D}/>
+ <submit action={lookupD}/>
+ </lform>
+</body></html>