(* COCANWIKI - a wiki written in Objective CAML.
* Written by Richard W.M. Jones <rich@merjis.com>.
* Copyright (C) 2004 Merjis Ltd.
- * $Id: cocanwiki_server_settings.ml,v 1.1 2004/10/21 11:42:05 rich Exp $
+ * $Id: cocanwiki_server_settings.ml,v 1.2 2006/03/27 16:43:44 rich Exp $
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*)
let server_settings_version, server_settings_stats_page,
server_settings_crash_email =
- let default = 1, None, None in
+ let default = 1l, None, None in
let settings = ref None in
- let get_settings (dbh : Dbi.connection) =
- let sth = dbh#prepare "select version, stats_page, crash_email
- from server_settings" in
- sth#execute [];
+ let get_settings dbh =
+ let rows = PGSQL(dbh)
+ "select version, stats_page, crash_email from server_settings" in
let s =
- try
- (match sth#fetch1 () with
- | [ `Int version; (`String _ | `Null) as stats_page;
- (`String _ | `Null) as crash_email ] ->
- let stats_page =
- match stats_page with `String s -> Some s | `Null -> None in
- let crash_email =
- match crash_email with `String s -> Some s | `Null -> None in
- version, stats_page, crash_email
- | _ -> assert false)
- with
- Not_found -> default in
- sth#finish ();
+ match rows with
+ | [row] -> row
+ | [] -> default
+ | _ -> assert false in
settings := Some s;
s
in
let server_settings_version dbh =
let (version, _, _) =
match !settings with
- None -> get_settings dbh
- | Some settings -> settings in
+ | None -> get_settings dbh
+ | Some settings -> settings in
version
in
let server_settings_stats_page dbh =
let (_, stats_page, _) =
match !settings with
- None -> get_settings dbh
- | Some settings -> settings in
+ | None -> get_settings dbh
+ | Some settings -> settings in
stats_page
in
let server_settings_crash_email dbh =
let (_, _, crash_email) =
match !settings with
- None -> get_settings dbh
- | Some settings -> settings in
+ | None -> get_settings dbh
+ | Some settings -> settings in
crash_email
in