Connect zum SQLite3-Server mit PyODBC, Python

Ich versuche, eine Klasse zu testen, die bei einer Abfrage Daten von einem SQL-Server lädt. Zu diesem Zweck wurde ich angewiesen, @ zu verwendesqlite3. Das Problem ist nun, dass die Klasse zwar problemlos eine Verbindung zur realen Datenbank herstellen kann, ich jedoch Schwierigkeiten habe, eine Verbindung mit dem temporären @ herzustellesqlite3 server, den ich erstelle, da ich nicht herausfinden kann, wie die Verbindungszeichenfolge aussehen soll. Ich benutzepyodbc in der Klasse, um eine Verbindung mit Datenbanken herzustellen. Hat jemand eine Idee, wie die Verbindungszeichenfolge aussehen soll?

Die Klasse sieht wie folgt aus:

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)

Und die vorübergehendesqlite3 server ist wie folgt

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!')")

Also, was ich eingeben möchte, ist so etwas wie

tester = Loader('connection_string_goes_here')
tester.loadFromSQL("SELECT * FROM test_table")

BEARBEITE

Okay, ich habe das Web ein wenig durchforstet und festgestellt, dass eine mögliche Verbindungszeichenfolge @ is"DRIVER={SQL Server};SERVER=localhost;DATABASE=test.db;Trusted_connection=yes". Die Verbindung wird jedoch nach einer Weile unterbrochen und die folgende Fehlermeldung wird zurückgegeben:

pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')

Das fand ich seltsam, da es lokal ist und ich kein Passwort angegeben habe. Ich habe auch versucht, den genauen Pfadnamen ohne Erfolg anzugeben.

Beste

Siege

Antworten auf die Frage(2)

Ihre Antwort auf die Frage