当前位置: 首页 > 面试题库 >

使用sqlalchemy和pyodbc连接到SQL Server 2012

岳玉书
2023-03-14
问题内容

我正在尝试在Python 3.3(Windows 7-64位)上使用SQLAlchemy(带有pyodbc)连接到SQL Server
2012数据库。我可以使用直接的pyodbc进行连接,但是无法使用SQLAlchemy进行连接。我有用于数据库访问的dsn文件设置。

我像这样直接使用pyodbc成功连接:

con = pyodbc.connect('FILEDSN=c:\\users\\me\\mydbserver.dsn')

对于sqlalchemy,我尝试过:

import sqlalchemy as sa
engine = sa.create_engine('mssql+pyodbc://c/users/me/mydbserver.dsn/mydbname')

create_engine方法实际上并没有建立连接并成功,但是如果我尝试使sqlalchemy实际建立连接的操作(如engine.table_names()),它会花费一些时间,但是会返回此错误:

DBAPIError: (Error) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)') None None

我不确定问题出在哪里,如何查看sqlalchemy实际将哪些连接字符串传递给了pyodbc。我已经在SQLite和MySQL中成功使用了相同的sqlalchemy类。

提前致谢!


问题答案:

SQLAlchemy将基于文件的DSN字符串解释为服务器名= c,数据库名= users

我更喜欢在不使用DSN的情况下进行连接,这是在代码迁移期间要减少的一项配置任务。

使用Windows身份验证可以使用以下语法:

engine = sa.create_engine('mssql+pyodbc://server/database')

或使用SQL身份验证:

engine = sa.create_engine('mssql+pyodbc://user:password@server/database')

SQLAlchemy在这里对不同的连接字符串选项进行了详尽的解释。



 类似资料:
  • 问题内容: 以下作品: 以下失败: 上面的错误消息是: DBAPIError:(错误)(“ 08001”,“ [08001] [unixODBC] [FreeTDS] [SQL Server]无法连接到数据源(0)(SQLDriverConnectW)”)无无 有人能指出我正确的方向吗?有没有一种方法可以简单地告诉sqlalchemy将特定的连接字符串传递给pyodbc? 请注意: 我想保留此DS

  • 本文向大家介绍sqlalchemy 使用连接,包括了sqlalchemy 使用连接的使用技巧和注意事项,需要的朋友参考一下 示例 您可以使用上下文管理器打开连接(即从池中请求一个连接): 有无,但必须手动将其关闭:            

  • 我正在尝试连接docker容器中运行的pyodbc python脚本,以登录MSSQL数据库。我尝试了各种docker文件,但无法建立连接(构建docker或python尝试连接时失败),是否有人使用pyodbc有工作的dockerfile: Dockerfile文件: 要求.TXT app. Py 构建容器docker build-t sqltest。 输出:

  • 我正试图用下面给出的代码,用pyodbc从SQL数据库中提取数据。连接很少工作,大多数时候会出错, OperationalError:(“HYT00”,“[HYT00][Microsoft][ODBC SQL Server驱动程序]登录超时过期(0)(SQLDriverConnect)”) 在使用SQL Server 2014时,我尝试将超时设置为零和Driver={SQL Server的ODBC

  • 我正在尝试将pyodbc连接到mdb文件。我搜索了这个网站,尝试了一些事情,但没有成功。下面是我的系统的概述。 Windows 7 Ultimate Service Pack 1 64操作系统 Python 3.4.0以C:\Python34\使用Python-3.4.0.0.amd64.msi安装 pyodbc 3.0.7使用Pyodbc-3.0.7.win-amd64-py3.4.exe安装