Dear Andy, sorry for the frightening delay! We haven't been inactive, however: you have warmed up a frequently discussed limitation of XQuery Update, and after a longer discussion, we found a solution that complies to the semantics of the XQuery Update spec., but still gives you a solution to return results from an updating query.
The solution is a new function db:output() [1], which caches its argument at runtime and returns the result after all update operations have been processed. If a node is passed on as argument, it is copied in main memory to avoid that it will be modified or deleted in a pending update operation. The db:output() function itself is marked "updating", which means that it can only be used in combination with other updating operations. Beside that, we have now defined all functions that return no value as "vacuous", which means they can now be used along with other updating operations. This way, you can e.g. perform update operations and call file:append(...) to write information to a log file in a single query. I have just updated our snapshots; feedback is welcome. Christian [1] http://docs.basex.org/wiki/Database_Module#db:output [2] http://docs.basex.org/wiki/Releases#Stable_Snapshots ___________________________ On Fri, Apr 13, 2012 at 2:54 PM, Andy Bunce <bunce.a...@gmail.com> wrote: > Musing on the the usefulness of actions that update the database and return > something, specifically in a web server with Xforms context, and the absence > of XQuery scripting. I have been playing around with things like the > following: > > let $s:=util:eval(' > let $x:=copy $c:=db:open("listman","1.xml") > modify (replace value of node $c/updated with current-dateTime()) > return $c > return db:replace("listman","1.xml",$x) > ') > return db:open("listman","1.xml") > > This works, but is it likely to stop working in the future? Is there a > better way? > > /Andy > > _______________________________________________ > BaseX-Talk mailing list > BaseX-Talk@mailman.uni-konstanz.de > https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk > _______________________________________________ BaseX-Talk mailing list BaseX-Talk@mailman.uni-konstanz.de https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk