pyodbc InterfaceError:sqlalchemy.create_engine(mssql + pyodbc:// ...)

时间:2019-06-03 09:52:11

标签: python sqlalchemy pyodbc

使用create_engine()mssql+pyodbc语句似乎不起作用,它抛出了InterfaceError。当我尝试使用turbodbc时,也会发生同样的情况。但是,在使用mssql+pymssql时,效果很好。

主要是,我正在尝试加快df.to_sql()操作。为此,我尝试了两种选择。

  1. 使用pyodbc并实现fastexecutemany = True
  2. 使用turbodbc

create_engine()命令中使用时,两个选项都会引发相同的错误。

我正在使用Windows 10和Windows身份验证Python 3.7。

可以使用pyodbc建立连接。因此,这可行:

cnxn = pyodbc.connect("Driver={ODBC Driver 13 for SQL Server};"
                          "Server=server;"
                          "Database=database;"
                          "Trusted_Connection=yes;")

我可以这样做:

cnx = create_engine('mssql+pymssql://@server/database')
df.to_sql(name = name, con=cnx, if_exists = 'append', index=False)

我做不到:

cnx = create_engine('mssql+pyodbc://@server/database')
df.to_sql(name = name, con=cnx, if_exists = 'append', index=False)

我收到以下错误消息:

InterfaceError: (pyodbc.InterfaceError) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')(Background on this error at: http://sqlalche.me/e/rvf5)

毫无疑问,当我尝试

时也会发生同样的事情
cnx = create_engine('mssql+turbodbc://@server/database')

很显然,我设置引擎并尝试连接数据库的方式失败了。

0 个答案:

没有答案