Не удается подключиться к базе данных SQL Server через SQLAlchemy - PullRequest
0 голосов
/ 02 июля 2019

У меня есть рабочее соединение с базой данных SQL Server через этот код:

conn = pyodbc.connect('Driver={SQL Server};'
                       'Server=Test_Server;'
                       'Database=Test_Database;'
                       'Trusted_Connection=yes;')

Это работает для запуска простого запроса выбора в Pandas DataFrame, например:

query = 'SELECT * FROM [dbo].[Domain]'
df = pd.read_sql(query,conn)

Теперь яхотите использовать df.to_sql для вставки фреймов данных в таблицу в базе данных.После некоторого поиска в Google я обнаружил, что для этого вам нужно использовать SQLAlchemy.

Я попытался преобразовать свое соединение через механизм создания и запустить df.to_sql, например:

import pyodbc
import pandas as pd
import sqlalchemy
from six.moves import urllib

params = urllib.parse.quote_plus("DRIVER={SQL Server};SERVER='Test_Server';DATABASE='Test_Database';trusted_connection='yes'")
engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)

engine.connect()

df.to_sql(name = 'Domain',con = engine, schema='dbo', if_exists='append', index=True, index_label=None, chunksize=None, dtype=None, method=None)

Я также попробовал этот кодс той же проблемой:

engine = create_engine('mssql+pyodbc://@' + servername + '/' + dbname + '?trusted_connection=yes&driver=ODBC+Driver+13+for+SQL+Server')

Сообщение об ошибке:

OperationalError: (pyodbc.OperationalError) ('08001', '[08001] [Microsoft] [ODBCДрайвер SQL Server] [DBNETLIB] SQL Server не существует или доступ запрещен. (17) (SQLDriverConnect); [08001] [Microsoft] [Драйвер ODBC SQL Server] [DBNETLIB] ConnectionOpen (Connect ()). (53) ')(Справочная информация об этой ошибке: http://sqlalche.me/e/e3q8)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...