Index: trachours/db.py
===================================================================
--- trachours/db.py	(revision 18622)
+++ trachours/db.py	(working copy)
@@ -11,10 +11,10 @@
 from datetime import datetime
 
 from trac.core import Component, implements
+from trac.db.api import DatabaseManager
 from trac.db.schema import Column, Index, Table
 from trac.env import IEnvironmentSetupParticipant
 from trac.util.datefmt import to_utimestamp, utc
-from tracsqlhelper import *
 
 from usermanual import *
 
@@ -33,6 +33,10 @@
 }
 
 
+def create_table(env, table):
+    DatabaseManager(env).create_tables([table])
+
+
 class SetupTracHours(Component):
     implements(IEnvironmentSetupParticipant)
 
@@ -59,10 +63,10 @@
             for step in self.steps[version]:
                 step(self)
 
-        self.env.db_transaction("""
-            UPDATE system SET value=%s
-            WHERE name='trachours.db_version'
-            """, (len(self.steps),))
+        with self.env.db_transaction as db:
+            db("""
+                UPDATE {0} SET value=%s WHERE name='trachours.db_version'
+            """.format(db.quote('system')), (len(self.steps),))
 
         self.db_installed_version = len(self.steps)
 
@@ -97,12 +101,12 @@
                       when, 'TracHours Plugin', user_manual_content, '', 0,))
 
     def version(self):
-        for value, in self.env.db_query("""
-                SELECT value FROM system WHERE name = 'trachours.db_version'
-                """):
-            return int(value)
-        else:
-            return 0
+        stmt = "SELECT value FROM {0} WHERE name='trachours.db_version'"
+        with self.env.db_query as db:
+            for value, in db(stmt.format(db.quote('system'))):
+                return int(value)
+            else:
+                return 0
 
     def create_db(self):
         ticket_time_table = Table('ticket_time', key='id')[
@@ -118,11 +122,12 @@
             Index(['worker']),
             Index(['time_started'])]
 
-        create_table(self.env, ticket_time_table)
-        execute_non_query(self.env, """
-            INSERT INTO system (name, value)
-            VALUES ('trachours.db_version', '1')
-            """)
+        with self.env.db_transaction as db:
+            create_table(self.env, ticket_time_table)
+            db("""
+                INSERT INTO {0} (name, value)
+                VALUES ('trachours.db_version', '1')
+            """.format(db.quote('system')))
 
     def update_custom_fields(self):
         ticket_custom = 'ticket-custom'
@@ -145,10 +150,11 @@
         create_table(self.env, time_query_table)
 
     def initialize_old_tickets(self):
-        execute_non_query(self.env, """
+        self.env.db_transaction("""
             INSERT INTO ticket_custom (ticket, name, value)
             SELECT id, 'totalhours', '0' FROM ticket WHERE id NOT IN (
-            SELECT ticket FROM ticket_custom WHERE name='totalhours');""")
+            SELECT ticket FROM ticket_custom WHERE name='totalhours')
+        """)
 
     def install_manual(self):
         if self._needs_user_manual():
Index: trachours/tests/__init__.py
===================================================================
--- trachours/tests/__init__.py	(revision 18622)
+++ trachours/tests/__init__.py	(working copy)
@@ -18,7 +18,8 @@
     with env.db_transaction as db:
         db("DROP TABLE IF EXISTS ticket_time")
         db("DROP TABLE IF EXISTS ticket_time_query")
-        db("DELETE FROM system WHERE name='trachours.db_version'")
+        db("DELETE FROM {0} WHERE name='trachours.db_version'"
+           .format(db.quote('system')))
 
 
 def test_suite():
