Я пытаюсь проверить класс, который загружает данные с SQL-сервера с учетом запроса. Для этого мне было поручено использовать sqlite3
. Теперь проблема заключается в том, что, хотя классу удается легко подключиться к реальной базе данных, я изо всех сил пытаюсь подключиться к временному серверу sqlite3
, который я создаю, так как не могу понять, как должна выглядеть строка подключения. Я использую pyodbc
в классе для подключения к базам данных. Итак, есть ли у кого-нибудь идея о том, как должна выглядеть строка подключения?Подключиться к серверу SQLite3 с помощью PyODBC, Python
Класс выглядит следующим образом:
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)
И временный sqlite3
сервер следующим образом
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!')")
Итак, что я хочу, чтобы ввести что-то вроде
tester = Loader('connection_string_goes_here')
tester.loadFromSQL("SELECT * FROM test_table")
EDIT
Хорошо, я немного проверил сеть и обнаружил, что возможная строка подключения - "DRIVER={SQL Server};SERVER=localhost;DATABASE=test.db;Trusted_connection=yes"
. Тем не менее, время соединения из через некоторое время и возвращает следующее сообщение об ошибке:
pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')
который я нашел странным, как это местная и я не указал пароль. Я также попытался указать точное имя пути безрезультатно.
Бест,
Виктор
Можете ли вы разместить более подробную информацию о сервере sqlite, который вы создали? И существующий код, который у вас есть до сих пор? Также можно найти многочисленные примеры того, как выглядят строки: https: //code.google.com/p/pyodbc/wiki/GettingStarted – AZhao
Конечно, я отредактирую! – Tingiskhan
Какой из многих драйверов ODBC SQLite вы используете? –