tried to use the
[goDBhammer.git] / src / dbibridge.go
1 package dbibridge
2
3 // #include <stdio.h>
4 // #include <dbi/dbi.h>
5 import "C"
6
7 import (
8         "unsafe";
9 )
10
11 type DBConnection struct {
12         dbconn C.dbi_conn;
13         dbinit bool;
14 }
15
16 func DBICreate()(connection *DBConnection)
17 {
18         var dbCon *DBConnection;
19         
20         dbCon = new(DBConnection);
21         dbCon.dbinit = false;
22         
23         return dbCon;
24 }
25
26 //func (thisDBConn *DBConnection)DBIConnect(dbtype string, host string, username string, password string, database string)
27 // for some reason, the above doesnt work how i'd expect..
28 func DBIConnect(thisDBConn *DBConnection, dbtype string, host string, username string, password string, database string)
29 {
30         C.dbi_initialize(nil);
31         
32         thisDBConn.dbconn = C.dbi_conn_new(C.CString(dbtype));
33         
34         C.dbi_conn_set_option((unsafe.Pointer)(thisDBConn.dbconn), C.CString("host"), C.CString(host));
35         C.dbi_conn_set_option((unsafe.Pointer)(thisDBConn.dbconn), C.CString("username"), C.CString(username));
36         C.dbi_conn_set_option((unsafe.Pointer)(thisDBConn.dbconn), C.CString("password"), C.CString(password));
37         C.dbi_conn_set_option((unsafe.Pointer)(thisDBConn.dbconn), C.CString("dbname"), C.CString(database));
38         C.dbi_conn_connect((unsafe.Pointer)(thisDBConn.dbconn));
39         
40         thisDBConn.dbinit = true;
41 }
42
43 func ExecSQL(thisDBConn *DBConnection, SQL string)
44 {
45         C.dbi_conn_query((unsafe.Pointer)(thisDBConn.dbconn), C.CString(SQL));
46 }
47
48 func DBIDisconnect(thisDBConn *DBConnection)
49 {
50         C.dbi_conn_close((unsafe.Pointer)(thisDBConn.dbconn));
51 }