首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建像pyodbc.connect()这样的pyodbc.connect引擎?

创建像pyodbc.connect()这样的pyodbc.connect引擎?
EN

Stack Overflow用户
提问于 2022-07-18 09:09:27
回答 2查看 368关注 0票数 -1

我已经使用pyodbc建立了到sql server的连接,但是现在我尝试使用sqlalchemy连接它,但是我得到了这个错误。

代码语言:javascript
复制
raise exc.ArgumentError(
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string 'Driver={sql server};Server=L39;Database=master;Trusted_Connection=true;'

Process finished with exit code 1

这就是我为pyodbc所做的工作

代码语言:javascript
复制
import pyodbc
conn = pyodbc.connect('Driver={sql server};'
                      'Server=L39;'
                      'Database=master;'
                      'Trusted_Connection=true;')

我需要这样做

代码语言:javascript
复制
from sqlalchemy import create_engine
engine = create_engine()
EN

回答 2

Stack Overflow用户

发布于 2022-07-18 11:39:44

如果您有一个工作的ODBC连接字符串

代码语言:javascript
复制
connection_string = (
    'Driver=ODBC Driver 17 for SQL Server;'
    'Server=L39;'
    'Database=master;'
    'Trusted_Connection=Yes;'
)

您可以很容易地使用它创建一个SQLAlchemy引擎:

代码语言:javascript
复制
from sqlalchemy import create_engine
from sqlalchemy.engine import URL

connection_url = URL.create(
    "mssql+pyodbc",
    query={"odbc_connect": connection_string}
)
engine = create_engine(connection_url)
票数 1
EN

Stack Overflow用户

发布于 2022-07-18 10:10:51

SQL使用URL连接,而不是连接字符串(这正是pyodbc所期望的)。

这里是您需要的文档:https://docs.sqlalchemy.org/en/14/core/engines.html#microsoft-sql-server

为了子孙后代,在这里复制相关片段:

数据库URL的典型形式是:

dialect+driver://username:password@host:port/database Server方言使用pyodbc作为默认DBAPI。pymssql也可用:pyodbc引擎= create_engine('mssql+pyodbc://scott:tiger@mydsn') # pymssql engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73019853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档