(* Copyright (C) 2000, HELM Team. * * This file is part of HELM, an Hypertextual, Electronic * Library of Mathematics, developed at the Computer Science * Department, University of Bologna, Italy. * * HELM is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * HELM is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HELM; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, * MA 02111-1307, USA. * * For details, see the HELM World-Wide-Web page, * http://cs.unibo.it/helm/. *) (* * gestione della connessione al database *) (* * le eccezioni lanciate dalle funzioni init e pgc sono * definite nel modulo Mathql *) open Mathql;; (* * paramentri della connessione * * TODO: bisogna scegliere se questi parametri vengono * passati come argomento *) (*let connection_param = "dbname=helm";;*) let connection_param = "host=dotto.cs.unibo.it dbname=helm user=helm";; (* * connessione al db *) let conn = ref None;; (* * controllo sulla connessione *) let pgc () = match !conn with None -> raise (MQInvalidConnection connection_param) | Some c -> c ;; (* * inizializzazione della connessione * * TODO * passare i parametri della connessione come argomento di init *) let init () = try ( conn := Some (new Postgres.connection connection_param); ) with _ -> raise (MQConnectionFailed ("init: " ^ connection_param)) ;; (* * chiusura della connessione *) let close () = match !conn with None -> () | Some c -> c#close ;;