Hi,

I am creating a web application (using Python 3.1 and CherryPy 3.2) where a SQLite connection and cursor object are created using the following code (simplified from the original):

class MainSite:
   con = sqlite.connect('MyDatabase.db')
   cursor = con.cursor()

   def index_page():
      some HTML code
      cursor.execute(some SQL statement)
      more HTML code
def another_page():
      some HTML code
      cursor.execute(anotherSQL statement)
      more HTML code

When I call a URL which launches the another_page() method I get the error message "sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread."

Questions...
1. Is there a large overhead in opening a new SQLite connection for each thread (ie. within each method)? 2. Is there any way to use the same connection for the whole class (or should I forget that idea completely?) 3. When a method returns to the calling method, is the connection automatically closed (assuming the object is local, of course) or does it have to be done explicitly using connection.close()?

TIA,
Alan Harris-Reid

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to