-let set_confirm_query f =
- confirm_query := f
-
-let get_query_info () = ! info
-
-let execute_query handle query =
- let module Util = MQueryUtil in
- let mode = [Open_wronly; Open_append; Open_creat; Open_text] in
- let perm = 64 * 6 + 8 * 6 + 4 in
- let time () =
- let lt = Unix.localtime (Unix.time ()) in
- "NEW LOG: " ^
- string_of_int (lt.Unix.tm_mon + 1) ^ "-" ^
- string_of_int (lt.Unix.tm_mday + 1) ^ "-" ^
- string_of_int (lt.Unix.tm_year + 1900) ^ " " ^
- string_of_int (lt.Unix.tm_hour) ^ ":" ^
- string_of_int (lt.Unix.tm_min) ^ ":" ^
- string_of_int (lt.Unix.tm_sec)
- in
- let log q r =
- let och = open_out_gen mode perm ! log_file in
- let out = output_string och in
- if ! query_num = 1 then out (time () ^ nl);
- out ("Query: " ^ string_of_int ! query_num ^ nl); Util.text_of_query out q nl;
- out ("Result:" ^ nl); Util.text_of_result out r nl;
- flush och
- in
- let execute q =
- let r = MQI.execute handle q in
- if ! log_file <> "" then log q r;
- info := string_of_int ! query_num :: ! info;
- incr query_num;
- r
- in
- if ! confirm_query query then execute query else raise Discard
-