]> matita.cs.unibo.it Git - helm.git/blob - helm/ocaml/mathql_interpreter/dbconn.ml
First very-very-very-very-alfa release of a MathQL Interpreter implemented
[helm.git] / helm / ocaml / mathql_interpreter / dbconn.ml
1
2 (*
3  * gestione della connessione al database
4  *)
5
6 (*
7  * le eccezzioni lanciate dalle funzioni init e pgc sono
8  * definite nel modulo Mathql 
9  *)
10 open Mathql;;
11
12 (*
13  * paramentri della connessione
14  *)
15 (*let connection_param = "host=127.0.0.1 dbname=helm";;*)
16 let connection_param = "host=dotto.cs.unibo.it dbname=helm user=helm";;
17
18 (*
19  * connessione al db
20  *)
21 let conn = ref None;;
22
23 (*
24  * controllo sulla connessione
25  *)
26 let pgc () =
27    match !conn with
28       None -> raise (MQInvalidConnection connection_param)
29    |  Some c -> c
30 ;;
31
32 (*
33  * inizializzazione della connessione
34  *
35  * TODO
36  * passare i parametri della connessione come argomento di init
37  *)
38 let init () =
39    try (
40     conn := Some (new Postgres.connection connection_param);
41    ) with
42     _ -> raise (MQConnectionFailed ("init: " ^ connection_param))
43 ;;
44
45 (*
46  * chiusura della connessione
47  *)
48 let close () =
49    match !conn with
50       None -> ()
51    |  Some c -> c#close
52 ;;