2

我是 Python + Flask + Flask Appbuilder 的新手,但我是一名专业的 Java 开发人员。我一直在开发一个最初使用 SqlLite 的小型应用程序,现在我想迁移到 SQL Server,这将是生产数据库。我似乎无法正确连接。我曾尝试使用 DSN,但我收到一条错误消息,表明驱动程序与其他东西(Python?)之间存在不匹配。对这个错误的搜索似乎表明驱动程序是 32 位的,Python 是 64 位的。但我仍然无法正常工作,所以我想我会尝试直接连接。无论如何,我宁愿不使用 DSN。我在网上搜索过,找不到适合我的示例。

我已经导入了pyodbc。这是我正在尝试连接的当前方式:

params = urllib.quote_plus("DRIVER={SQL Server};SERVER=devsql07:1433;DATABASE=DevOpsSnippets;UID=<user>;PWD=<password>")
SQLALCHEMY_DATABASE_URI = "mssql+pyodbc:///?odbc_connect=%s" % params

这会产生以下错误消息:

2016-02-17 07:11:38,115:ERROR:flask_appbuilder.security.sqla.manager:DB Creation and initialization failed: (pyodbc.Error) ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection. (14) (SQLDriverConnect); [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (ParseConnectParams()). (14)')

任何人都可以帮我正确连接吗?

我真的很感激任何帮助。

4

2 回答 2

2

如果您使用的是 pyodbc,您应该能够以这种方式连接

import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=yourServer;DATABASE=yourDatabase;UID=;PWD=')

#putting to use
SQL = "select Field1, Field2 from someTable"
cursor = cnxn.cursor()
cursor.execute(SQL)
row = cursor.fetchall()
for r in row:
    print r[0] #field1
    print r[1] #field2
于 2016-02-17T13:37:17.223 回答
0

应通过逗号指定端口。将连接字符串指定为

DRIVER={SQL Server};SERVER=devsql07,1433;DATABASE.....
于 2019-06-23T22:50:05.633 回答