|
@@ -0,0 +1,57 @@
|
|
|
+# This file is part of jwmud, written by Helmut Pozimski in 2014.
|
|
|
+#
|
|
|
+# jwmud is free software: you can redistribute it and/or modify
|
|
|
+# it under the terms of the GNU General Public License as published by
|
|
|
+# the Free Software Foundation, version 2 of the License.
|
|
|
+#
|
|
|
+# jwmud is distributed in the hope that it will be useful,
|
|
|
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
+# GNU General Public License for more details.
|
|
|
+#
|
|
|
+# You should have received a copy of the GNU General Public License
|
|
|
+# along with jwmud. If not, see <http://www.gnu.org/licenses/>.
|
|
|
+
|
|
|
+# -*- coding: utf8 -*-
|
|
|
+
|
|
|
+import sqlite3
|
|
|
+
|
|
|
+from jwmudlib import jwmu_exceptions
|
|
|
+
|
|
|
+
|
|
|
+class db:
|
|
|
+ def __init__(self, db_path):
|
|
|
+ """Constructor, establishes the initial connection to the database."""
|
|
|
+ try:
|
|
|
+ self.__connection = sqlite3.connect(db_path)
|
|
|
+ except sqlite3.OperationalError:
|
|
|
+ raise jwmu_exceptions.DataBaseAccessFailed()
|
|
|
+ else:
|
|
|
+ self.__cursor = self.__connection.cursor()
|
|
|
+
|
|
|
+ def __del__(self):
|
|
|
+ """Destructor, closes the connection to the database"""
|
|
|
+ self.__connection.close()
|
|
|
+
|
|
|
+ def __ExecuteQuery(self, query, arguments=None):
|
|
|
+ """Executes any query and returns the result"""
|
|
|
+ if arguments is None:
|
|
|
+ query_result = self.__cursor.execute(query)
|
|
|
+ else:
|
|
|
+ query_result = self.__cursor.execute(query, arguments)
|
|
|
+ return query_result
|
|
|
+
|
|
|
+ def __ExecuteStatement(self, statement, arguments=None):
|
|
|
+ """Executes any statements that perform a write access to the
|
|
|
+ database
|
|
|
+
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ if arguments is None:
|
|
|
+ self.__cursor.execute(statement)
|
|
|
+ else:
|
|
|
+ self.__cursor.execute(statement, arguments)
|
|
|
+ except sqlite3.OperationalError:
|
|
|
+ raise jwmu_exceptions.DataBaseWriteFailed()
|
|
|
+ else:
|
|
|
+ self.__connection.commit()
|