X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=src%2Fdbibridge.go;h=4c72f2f1cf84c6cd0ab88c1e8b6c2e72bc9279fe;hb=eca6b58f8e0fe466027f051aca1e83da81a18046;hp=7f0bcf83fbfad6f73698ba36becd5e3daa7c001d;hpb=70e916f77d2ccc9b296e53981ccca0c11798e0d5;p=goDBhammer.git diff --git a/src/dbibridge.go b/src/dbibridge.go index 7f0bcf8..4c72f2f 100644 --- a/src/dbibridge.go +++ b/src/dbibridge.go @@ -1,8 +1,51 @@ package dbibridge -import "fmt" +// #include +// #include +import "C" -func dbiconnect() +import ( + "unsafe"; +) + +type DBIConnection struct { + dbconn C.dbi_conn; + dbinit bool; +} + +func DBICreate()(connection *DBConnection) +{ + var dbCon *DBConnection; + + dbCon = new(DBConnection); + dbCon.dbinit = false; + + return dbCon; +} + +//func (thisDBConn *DBIConnection)DBIConnect(dbtype string, host string, username string, password string, database string) +// for some reason, the above doesnt work how i'd expect.. +func DBIConnect(thisDBConn *DBIConnection, dbtype string, host string, username string, password string, database string) { - fmt.Printf("Hello, world\n"); + C.dbi_initialize(nil); + + thisDBConn.dbconn = C.dbi_conn_new(C.CString(dbtype)); + + C.dbi_conn_set_option((unsafe.Pointer)(thisDBConn.dbconn), C.CString("host"), C.CString(host)); + C.dbi_conn_set_option((unsafe.Pointer)(thisDBConn.dbconn), C.CString("username"), C.CString(username)); + C.dbi_conn_set_option((unsafe.Pointer)(thisDBConn.dbconn), C.CString("password"), C.CString(password)); + C.dbi_conn_set_option((unsafe.Pointer)(thisDBConn.dbconn), C.CString("dbname"), C.CString(database)); + C.dbi_conn_connect((unsafe.Pointer)(thisDBConn.dbconn)); + + thisDBConn.dbinit = true; } + +func ExecSQL(thisDBConn *DBIConnection, SQL string) +{ + C.dbi_conn_query((unsafe.Pointer)(thisDBConn.dbconn), C.CString(SQL)); +} + +func DBIDisconnect(thisDBConn *DBIConnection) +{ + C.dbi_conn_close((unsafe.Pointer)(thisDBConn.dbconn)); +} \ No newline at end of file