3
-define(DRV_CONNECT, $C).
4
-define(DRV_DISCONNECT, $D).
5
-define(DRV_SELECT, $S).
7
-export([connect/1, disconnect/1, select/2]).
10
case erl_ddll:load_driver(".", "pg_async") of
12
{error, already_loaded} -> ok;
15
Port = open_port({spawn, ?MODULE}, [binary]),
16
port_control(Port, ?DRV_CONNECT, ConnectStr),
17
case return_port_data(Port) of
25
port_control(Port, ?DRV_DISCONNECT, ""),
26
R = return_port_data(Port),
30
select(Port, Query) ->
31
port_control(Port, ?DRV_SELECT, Query),
32
return_port_data(Port).
34
return_port_data(Port) ->
36
{Port, {data, Data}} ->