From fcfe083c7a6d12eb4b6b88eea4a5ebbfc4d36995 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 4 Jun 2010 16:45:36 +0200 Subject: Initial implementation --- odb/mysql/connection.cxx | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 odb/mysql/connection.cxx (limited to 'odb/mysql/connection.cxx') diff --git a/odb/mysql/connection.cxx b/odb/mysql/connection.cxx new file mode 100644 index 0000000..9edb814 --- /dev/null +++ b/odb/mysql/connection.cxx @@ -0,0 +1,44 @@ +// file : odb/mysql/connection.cxx +// author : Boris Kolpackov +// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// license : GNU GPL v2; see accompanying LICENSE file + +#include // std::bad_alloc + +#include +#include +#include + +namespace odb +{ + namespace mysql + { + connection:: + connection (database& db) + : handle_ (&mysql_) + { + if (mysql_init (handle_) == 0) + throw std::bad_alloc (); + + if (mysql_real_connect (handle_, + db.host (), + db.user (), + db.passwd (), + db.db (), + db.port (), + db.socket (), + db.client_flags ()) == 0) + { + database_exception e (handle_); + mysql_close (handle_); + throw e; + } + } + + connection:: + ~connection () + { + mysql_close (handle_); + } + } +} -- cgit v1.1