1

在 python3 中使用 sqlalchemy,我正在尝试连接到 MS Sql Server 2016 数据库。这是命令:

engine = sql.create_engine('mssql+pyodbc://@localhost/dbname?trusted_connection=yes&driver=ODBC+Driver+17+for+SQL+Server')

在此之后尝试任何交易,例如:

engine.execute(text('DELETE FROM tablename').execution_options(autocommit = True))

产生以下错误:

Traceback (most recent call last):
  File "C:\python-ratings\lib\site-packages\sqlalchemy\engine\base.py", line 2339, in _wrap_pool_connect
    return fn()
  File "C:\python-ratings\lib\site-packages\sqlalchemy\pool\base.py", line 364, in connect
    return _ConnectionFairy._checkout(self)
  File "C:\python-ratings\lib\site-packages\sqlalchemy\pool\base.py", line 778, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "C:\python-ratings\lib\site-packages\sqlalchemy\pool\base.py", line 495, in checkout
    rec = pool._do_get()
  File "C:\python-ratings\lib\site-packages\sqlalchemy\pool\impl.py", line 140, in _do_get
    self._dec_overflow()
  File "C:\python-ratings\lib\site-packages\sqlalchemy\util\langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "C:\python-ratings\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
    raise exception
  File "C:\python-ratings\lib\site-packages\sqlalchemy\pool\impl.py", line 137, in _do_get
    return self._create_connection()
  File "C:\python-ratings\lib\site-packages\sqlalchemy\pool\base.py", line 309, in _create_connection
    return _ConnectionRecord(self)
  File "C:\python-ratings\lib\site-packages\sqlalchemy\pool\base.py", line 440, in __init__
    self.__connect(first_connect_check=True)
  File "C:\python-ratings\lib\site-packages\sqlalchemy\pool\base.py", line 661, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "C:\python-ratings\lib\site-packages\sqlalchemy\util\langhelpers.py", line 68, in __exit__
    compat.raise_(
  File "C:\python-ratings\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
    raise exception
  File "C:\python-ratings\lib\site-packages\sqlalchemy\pool\base.py", line 656, in __connect
    connection = pool._invoke_creator(self)
  File "C:\python-ratings\lib\site-packages\sqlalchemy\engine\strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "C:\python-ratings\lib\site-packages\sqlalchemy\engine\default.py", line 493, in connect
    return self.dbapi.connect(*cargs, **cparams)
pyodbc.InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default dri
ver specified (0) (SQLDriverConnect)')

关于我做错了什么的任何线索?我登录的用户可以使用 Windows 身份验证连接到数据库。

4

1 回答 1

0

抱歉,我试图使用机器上未安装的 ms odbc 驱动程序版本。现在一切都好。

于 2020-09-04T23:56:18.150 回答