Show
Ignore:
Timestamp:
04/17/10 23:08:15 (14 years ago)
Author:
jerome
Message:

Fix which fixes 56 for good. References 60.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/storages/sqlitestorage.py

    r3528 r3531  
    3838        """Opens the SQLite database connection.""" 
    3939        BaseStorage.__init__(self, pykotatool) 
    40  
     40        self.doModify = self.doQuery 
    4141        self.tool.logdebug("Trying to open database (dbname=%s)..." % repr(dbname)) 
    4242        self.database = sqlite.connect(dbname, isolation_level=None) 
    4343        self.cursor = self.database.cursor() 
    4444        self.closed = False 
     45        try : 
     46            self.doQuery("PRAGMA foreign_keys = True;") 
     47        except PyKotaStorageError : 
     48            pass 
    4549        self.tool.logdebug("Database opened (dbname=%s)" % repr(dbname)) 
    4650 
     
    6872        self.tool.logdebug("Transaction aborted.") 
    6973 
    70     def doRawSearch(self, query) : 
    71         """Does a raw search query.""" 
     74    def doQuery(self, query) : 
     75        """Executes an SQL query.""" 
    7276        query = query.strip() 
    7377        if not query.endswith(';') : 
     
    7781            self.cursor.execute(query) 
    7882        except self.database.Error, msg : 
     83            self.tool.logdebug("Query failed : %s" % repr(msg)) 
    7984            raise PyKotaStorageError, repr(msg) 
    80         else : 
    81             result = self.cursor.fetchall() 
    82             return result 
     85 
     86    def doRawSearch(self, query) : 
     87        """Executes a raw search query.""" 
     88        self.doQuery(query) 
     89        result = self.cursor.fetchall() 
     90        return result 
    8391 
    8492    def doSearch(self, query) : 
     
    101109                rows.append(rowdict) 
    102110            return rows 
    103  
    104     def doModify(self, query) : 
    105         """Does a (possibly multiple) modify query.""" 
    106         query = query.strip() 
    107         if not query.endswith(';') : 
    108             query += ';' 
    109         self.querydebug("QUERY : %s" % query) 
    110         try : 
    111             self.cursor.execute(query) 
    112         except self.database.Error, msg : 
    113             self.tool.logdebug("Query failed : %s" % repr(msg)) 
    114             raise PyKotaStorageError, repr(msg) 
    115111 
    116112    def doQuote(self, field) :