使用odbc连接从SQLAlchemy连接到SQL server

2024-10-01 09:36:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉Python和sqlserver。在过去的两天里,我一直试图在我们的数据库中插入一个熊猫数据框,但没有任何运气。谁能帮我调试一下错误吗。在

我试过以下方法

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

但是在发动机连接()行我得到以下错误

^{pr2}$

谁能告诉我我缺少什么吗。我正在使用Microsoft SQL Server Management Studio-14.0.17177.0

我通过以下方式连接到SQL server

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

我也试过这个

import pyodbc

conn_str = (
    r'Driver={SQL Server Native Client 11.0};'
    r'Server=bidept;'
    r'Database=BIDB;'
    r'Trusted_Connection=yes;'
    )

cnxn = pyodbc.connect(conn_str)

df.to_sql(name='Test',con=cnxn, if_exists='append')

我得到了这个错误

pandas.io.sql.DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': ('42S02', "[42S02] [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid object name 'sqlite_master'. (208) (SQLExecDirectW); [42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]Statement(s) could not be prepared. (8180)")

如果我不知道该怎么办,任何帮助都将不胜感激。在


Tags: nameimportclientsqlserverconnect错误create
1条回答
网友
1楼 · 发布于 2024-10-01 09:36:19

SQLAlchemy documentation中所述,当使用完全通过pyodbc字符串时,“delimeters必须是URL转义的”。在

所以,这将失败。。。在

import pyodbc
from sqlalchemy import create_engine

params = r'DRIVER={SQL Server};SERVER=.\SQLEXPRESS;DATABASE=myDb;Trusted_Connection=yes'
conn_str = 'mssql+pyodbc:///?odbc_connect={}'.format(params)
engine = create_engine(conn_str)

。。。但这会起作用:

^{pr2}$

相关问题 更多 >