例外值:
(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')
答案 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模块。检查其文档中的"提供商无法找到"错误。