2017-11-20 34 views
0

私はpandasデータフレーム「df」を取得するためのPythonコードを持っています。このデータフレームをMicrosoft SQL Serverに書き込もうとしています。私は、次のようなエラーにPythonのsqlalchemyが.to_sqlを使用してpandasデータフレームをSQL Serverに書き込もうとしています

sqlalchemy.exc.DBAPIError: (pyodbc.Error) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver]Neither DSN nor SERVER keyword supplied (0) (SQLDriverConnect)') 

を取得していますengine.connectで()の行は誰がどのような私を教えてもらえますしかし、私はエラーに

import pyodbc 
from sqlalchemy import create_engine 

engine = create_engine('mssql+pyodbc:///?odbc_connect=DRIVER={SQL Server};SERVER=bidept;DATABASE=BIDB;UID=sdcc\neils;PWD=neil!pass') 
engine.connect() 
df.to_sql(name='[BIDB].[dbo].[Test]',con=engine, if_exists='append') 

を取得していて、以下のコードを介して接続しようとしています紛失しています。私には、Microsoft SQL Server Management Studioを使用しています - 14.0.17177.0

私は、データベースとのpythonに新しいです、次

Server type: Database Engine 
Server name: bidept 
Authentication: Windows Authentication 

for which I log into my windows using username : sdcc\neils 
and password : neil!pass 

を通じてSQLサーバーに接続します。追加の詳細が必要な場合は、お知らせください。どんな助けでも大歓迎です。前もって感謝します。

+0

[SQLAlchemyからのSQLサーバーへの接続: "提供されているDSNおよびSERVERキーワードがありません"](https://stackoverflow.com/questions/47416699/connecting-to-sql-server-from-sqlalchemy-neither- dsn-nor-server-keyword-suppli) –

答えて

0

私はついにそれを動かすことができました。私のSQL Serverでは、すべてのテーブルが 'DBO' スキーマの下にある私がHere

(すなわちdbo.Test1、dbo.Other_Tables)と、このクエリに答え@ GORD・トンプソンへ

import pyodbc 
from sqlalchemy import create_engine 
import urllib 

params = urllib.quote_plus(r'DRIVER={SQL Server};SERVER=bidept;DATABASE=BIDB;Trusted_Connection=yes') 
### For python 3.5: urllib.parse.quote_plus 
conn_str = 'mssql+pyodbc:///?odbc_connect={}'.format(params) 
engine = create_engine(conn_str) 
reload(sys) 
sys.setdefaultencoding('utf8') 

df.to_sql(name='Test',con=engine, if_exists='append',index=False) 

感謝私のテーブルを 'sdcc \ neils'スキーマ(つまりsdcc \ neils.Test1、sdcc \ neils.Other_Tables)に置くのですか?

+0

ソリューション 'df.to_sql(name = 'Test'、con =エンジン、if_exists = 'append'、index = False、schema =" dbo ")' –

関連する問題