diff options
author | Adam Chlipala <adamc@hcoop.net> | 2008-09-14 19:03:55 -0400 |
---|---|---|
committer | Adam Chlipala <adamc@hcoop.net> | 2008-09-14 19:03:55 -0400 |
commit | fe35c44cd34ceb2a2f02b27f56bf1607557bb89a (patch) | |
tree | 947cb1a65fa285087e64c14a5c08a9804bc83a7a /lib | |
parent | 7b9035e69d65f463da21a82d5f35deebaf1986ac (diff) |
Crud update form
Diffstat (limited to 'lib')
-rw-r--r-- | lib/basis.urs | 2 | ||||
-rw-r--r-- | lib/top.ur | 6 | ||||
-rw-r--r-- | lib/top.urs | 5 |
3 files changed, 12 insertions, 1 deletions
diff --git a/lib/basis.urs b/lib/basis.urs index ed217e3a..7fd5dc52 100644 --- a/lib/basis.urs +++ b/lib/basis.urs @@ -296,7 +296,7 @@ con lformTag = fn ty :: Type => fn inner :: {Unit} => fn attrs :: {Type} => ctx ::: {Unit} -> [LForm] ~ ctx -> nm :: Name -> unit -> tag attrs ([LForm] ++ ctx) inner [] [nm = ty] -val textbox : lformTag string [] [] +val textbox : lformTag string [] [Value = string] val password : lformTag string [] [] val ltextarea : lformTag string [] [] @@ -103,3 +103,9 @@ fun queryX (tables ::: {{Type}}) (exps ::: {Type}) (ctx ::: {Unit}) (q : sql_que query q (fn fs acc => return <xml>{acc}{f fs}</xml>) <xml></xml> + +fun oneOrNoRows (tables ::: {{Type}}) (exps ::: {Type}) (q : sql_query tables exps) = + [tables ~ exps] => + query q + (fn fs _ => return (Some fs)) + None diff --git a/lib/top.urs b/lib/top.urs index 17ce5c28..add94578 100644 --- a/lib/top.urs +++ b/lib/top.urs @@ -66,3 +66,8 @@ val queryX : tables ::: {{Type}} -> exps ::: {Type} -> ctx ::: {Unit} -> ($(exps ++ fold (fn nm (fields :: {Type}) acc => [nm] ~ acc => [nm = $fields] ++ acc) [] tables) -> xml ctx [] []) -> transaction (xml ctx [] []) + +val oneOrNoRows : tables ::: {{Type}} -> exps ::: {Type} -> sql_query tables exps + -> tables ~ exps + -> transaction + (option $(exps ++ fold (fn nm (fields :: {Type}) acc => [nm] ~ acc => [nm = $fields] ++ acc) [] tables)) |