iro/database.py
author Sandro Knauß <knauss@netzguerilla.net>
Mon, 30 Jan 2012 21:40:46 +0100
branchdevel
changeset 129 d6704178a18f
parent 56 3718abbfffd6
permissions -rw-r--r--
renaming NotATelNumber -> InvalidTel
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     1
#!/usr/bin/env python
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     2
# -*- coding: utf-8 -*-
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     3
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     4
import MySQLdb
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     5
import sqlite3
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     6
class Database(object):
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     7
    def __init__(self,connection):
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     8
        self.conn=None
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
     9
        self.cursor=None
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    10
        self.connection=connection
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    11
        self.testConnection()
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    12
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    13
    def testConnection(self):
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    14
        self.connect()
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    15
        self.disconnect()
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    16
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    17
    def getConn(self):
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    18
        return self.conn
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    19
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    20
    def getCursor(self):
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    21
        return self.cursor
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    22
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    23
    def connect(self):
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    24
        if not self.getConn():
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    25
            if (self.connection['type']=='mysql'):
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    26
                self.conn=MySQLdb.connect(
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    27
                    host   = self.connection["host"],
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    28
                    db     = self.connection["db"],
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    29
                    user   = self.connection["user"],
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    30
                    passwd = self.connection["passwd"],
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    31
                    )
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    32
            if (self.connection['type']=='sqlite'):
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    33
                self.conn=sqlite3.connect(self.connection['path'])
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    34
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    35
        if not self.getCursor():
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    36
            self.cursor = self.conn.cursor()
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    37
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    38
    def disconnect(self):
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    39
        if self.getCursor():
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    40
            self.cursor.close()
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    41
        self.cursor=None
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    42
        if self.getConn():
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    43
            self.conn.close()
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    44
        self.conn=None
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    45
3718abbfffd6 acounting
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff changeset
    46