加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – PyOdbc无法连接到SQL Server实例

发布时间:2020-12-20 11:43:12 所属栏目:Python 来源:网络整理
导读:我试图使用 Python 2.7(32位)在Windows 7上使用pyodbc 3.0.6.,SQLAlchemy 1.0.4连接到sql server实例.我正在使用如下连接字符串 DRIVER={SQL Server};SERVER=mymachinename;DATABASE=mydb;UID=sa;PWD=admin1; 但我一直收到这个错误 Could not parse rfc1738
我试图使用 Python 2.7(32位)在Windows 7上使用pyodbc 3.0.6.,SQLAlchemy 1.0.4连接到sql server实例.我正在使用如下连接字符串

DRIVER={SQL Server};SERVER=mymachinename;DATABASE=mydb;UID=sa;PWD=admin1;

但我一直收到这个错误

Could not parse rfc1738 URL from string ‘DRIVER={SQL Server};SERVER=mymachinename;DATABASE=mydb;UID=sa;PWD=admin1’

我正在使用与sqlSoup.Something这样的连接字符串

db = sqlsoup.SQLSoup(connectionstring)

编辑
我尝试使用SqlAlchemy中的Automap,它也失败并显示相同的消息

Traceback (most recent call last):
File “C:SandboxPython scriptsBumpValuesnewConnectivityTest.py”,line 7,in
engine = create_engine(“DRIVER={SQL Server};SERVER=gagan;DATABASE=persons;UID=sa;PWD=admin1;”)
File “C:Python27libsite-packagessqlalchemyengine__init__.py”,line 386,in create_engine
return strategy.create(*args,**kwargs)
File “C:Python27libsite-packagessqlalchemyenginestrategies.py”,line 49,in create
u = url.make_url(name_or_url)
File “C:Python27libsite-packagessqlalchemyengineurl.py”,line 176,in make_url
return _parse_rfc1738_args(name_or_url)
File “C:Python27libsite-packagessqlalchemyengineurl.py”,line 225,in _parse_rfc1738_args
“Could not parse rfc1738 URL from string ‘%s'” % name)
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string ‘DRIVER={SQL Server};SERVER=gagan;DATABASE=persons;UID=sa;PWD=admin1;’
[Finished in 0.4s with exit code 1]
[shell_cmd: python -u “C:SandboxPython scriptsBumpValuesnewConnectivityTest.py”]

我的代码如下

from sqlalchemy.ext.automap import automap_base
from sqlalchemy.orm import Session
from sqlalchemy import create_engine


Base = automap_base()
engine = create_engine("DRIVER={SQL Server};SERVER=gagan;DATABASE=persons;UID=sa;PWD=admin1;")
Base.prepare(engine,reflect=True)

usrs = Base.classes.users
print(usrs)

能告诉我这里我做错了什么吗?

编辑
我认为这不是布莱恩提出的问题的副本.例如,我遵循问题??中建议的相同示例

import sqlalchemy as sa
engine = sa.create_engine('mssql+pyodbc://sa:admin1@gagan/persons')

但即使它失败了相同的消息

这是快照..
第一个使用类型为“’mssql pyodbc:// user:password @ server / database’”的连接字符串

而第二个使用类型的连接字符串
‘DRIVER = {SQL Server}; SERVER = gagan; DATABASE = people; UID = sa; PWD = admin1;

谢谢

解决方法

好的,这似乎解决了这个问题

import urllib    
connection_string = "DRIVER={SQL Server};Database=people;SERVER=gagan;UID=sa;PWD=admin1"
connection_string = urllib.quote_plus(connection_string) 
connection_string = "mssql+pyodbc:///?odbc_connect=%s" % connection_string

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读