title: Connect to SQLite3 server using PyODBC, Python
body: <p>I'm trying to test a class that loads data from an SQL server given a query. To do this, I was instructed to use <code>sqlite3</code>. Now, the problem is that while the class manages to connect to the real database with ease, I'm struggling to connect with the temporary <code>sqlite3</code> server that I create, as I cannot figure out what the connection string should look like. I'm using <code>pyodbc</code> in the class to connect with databases. So, has anyone got an idea on what the connection string should look like?</p>
  
  <p>The class looks as follows:</p>
  
  <pre><code>import petl as etl
  import pyodbc
  class Loader:
    """
    This is a class from which one can load data from an SQL server.
    """
  
    def __init__(self, connection_string):
        """
        This is the initialization file, and it requires the connection_string.
  
        :param connection_string:
        :type connection_string: str
        :return:
        """
  
        self.connection = pyodbc.connect(connection_string)
  
    def loadFromSQL(self, query):
        """
        This function loads the data according to the query passed in query.
  
        :param query:
        :type query: str
        """
  
        self.originalTableETL = etl.fromdb(self.connection, query)
  
        self.originalTablePD = etl.todataframe(self.originalTableETL)
  </code></pre>
  
  <p>And the temporary <code>sqlite3</code> server is as follows</p>
  
  <pre><code>import sqlite3 as lite
  con = lite.connect('test.db')
  with con:
    cur = con.cursor()
    cur.execute("DROP TABLE IF EXISTS test_table")
    cur.execute("CREATE TABLE test_table(col1 TEXT, col2 TEXT)")
    cur.execute("INSERT INTO test_table VALUES('Hello', 'world!')")
  </code></pre>
  
  <p>So, what I wish to input is something like</p>
  
  <pre><code>tester = Loader('connection_string_goes_here')
  tester.loadFromSQL("SELECT * FROM test_table")
  </code></pre>
  
  <p><strong>EDIT</strong></p>
  
  <p>Okay, I've scoured the web a bit and found that a possible connection string is 
  <code>"DRIVER={SQL Server};SERVER=localhost;DATABASE=test.db;Trusted_connection=yes"</code>. However, the connection times out after a while and returns the following error message:</p>
  
  <pre><code>pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')
  </code></pre>
  
  <p>Which I found strange as it's local and as I haven't specified any password. I've also tried specifying the exact path name to no avail.</p>
  
  <p>Best,</p>
  
  <p>Victor</p>