Django给出错误:异常类型:OperationalError

时间:2014-04-09 16:01:15

标签: django python-2.7

例外值:

(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。

这里是Traceback

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')

3 个答案:

答案 0 :(得分:2)

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

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

下载

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

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

答案 1 :(得分:1)

答案(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'
    }
}

答案 2 :(得分:0)

看起来它说它无法访问您的数据库。数据库可能只允许从某些机器访问。

这不是Django的错误;它来自您安装的sqlserver_ado Python模块。检查其文档中的"提供商无法找到"错误。