【问题标题】:Django giving error: Exception Type: OperationalErrorDjango 给出错误:异常类型:OperationalError
【发布时间】:2014-04-09 16:01:15
【问题描述】:

异常值:

(com_error(-2147352567, 'Exception occurred.', 
 (0, 
  u'ADODB.Connection',
  u'Provider cannot be found. It may not be properly installed.', 
  u'C:\\Windows\\HELP\\ADO270.CHM', 1240655, -2146824582),
  None),
 u'Error opening connection: DATA SOURCE=172.16.26.51\\myinstance;Initial Catalog=dbName;UID=****;PWD=****;PROVIDER=sqlncli10;DataTypeCompatibility=80;MARS Connection=True')

我正在使用:

Django==1.5.5
django-mssql==1.4
pywin32==218

相同的项目,相同的设置,在一台机器上成功运行,但它不运行另一台机器。

我使用 PIP 安装 Django 和 django-mssql。

这里是回溯

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
  115.                         response = callback(request, *callback_args, **callback_kwargs)
File "C:\inetpub\wwwroot\newsite\dbexplorer\views.py" in viewVersionList
  18.     cursor = connection.cursor()
File "C:\Python27\lib\site-packages\django\db\backends\__init__.py" in cursor
  324.             cursor = self.make_debug_cursor(self._cursor())
File "C:\Python27\lib\site-packages\sqlserver_ado\base.py" in _cursor
  241.             self.__connect()
File "C:\Python27\lib\site-packages\sqlserver_ado\base.py" in __connect
  196.             use_transactions=self.use_transactions,
File "C:\Python27\lib\site-packages\sqlserver_ado\dbapi.py" in connect
  151.         raise OperationalError(e, "Error opening connection: " + connection_string)

Exception Type: OperationalError at /dbexplorer/
Exception Value: (com_error(-2147352567, 'Exception occurred.', (0, u'ADODB.Connection', u'Provider cannot be found. It may not be properly installed.', u'C:\\Windows\\HELP\\ADO270.CHM', 1240655, -2146824582), None), u'Error opening connection: DATA SOURCE=172.16.26.51\\myinstance;Initial Catalog=dbexplorer;UID=****;PWD=****;PROVIDER=sqlncli10;DataTypeCompatibility=80;MARS Connection=True')

【问题讨论】:

    标签: django python-2.7


    【解决方案1】:

    出现此错误是因为我的某些机器没有安装 SQL Native 客户端。

    您可以从Microsoft® SQL Server® 2008 R2 SP2 Feature Pack下载它

    您可以获得客户端的独立安装程序。根据您的架构下载安装程序。

    选择其中一个:sqlncli_x86.msi/sqlncli_ia64.msi/sqlncli_amd64.msi

    【讨论】:

    【解决方案2】:

    这个问题的答案(Establishing connection to MS SQL Server 2014 with django-mssql-1.6 ) 帮助我解决了同样的问题:

    更改数据库的设置以包含“提供者”选项并将其设置为“SQLOLEDB”

    DATABASES = {
    'default': {
        'NAME': 'CVH_Dev',
        'ENGINE': 'sqlserver_ado',
        'HOST': '192.***.212.2**',
        'USER': 'USER',
        'PASSWORD': 'PWD',
        'OPTIONS': {
            'provider': 'SQLOLEDB',
            'use_legacy_date_fields': 'True'
        }
    }
    

    【讨论】:

      【解决方案3】:

      它似乎在说它无法访问您的数据库。数据库可能只允许从某些机器访问。

      这不是 Django 的错误;它来自您安装的sqlserver_ado Python 模块。检查其文档以查找“找不到提供程序”错误。

      【讨论】:

      • 可以从任何地方访问数据库。我尝试将它连接到 sql server management studio 和 php。它有效。
      • 那么最有可能的是sqlserver_ado Python模块没有正确安装。
      • 这个错误是因为我的一些机器没有安装 SQL Native 客户端。感谢您的帮助:)
      猜你喜欢
      • 2011-02-20
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多