Web2Py не будет подключаться к MSSQL - PullRequest
3 голосов
/ 25 октября 2011

Мне не удается подключить web2py к mssql.

<type 'exceptions.RuntimeError'>(Failure to connect, tried 5 times:
'NoneType' object has no attribute 'connect')

Моя строка подключения:

db = DAL('mssql://testUser:password1@localhost/testDB') 

Среда
Windows Server 2008 R2, 64-разрядная операционная система
SQL Server 2008 R2, локальная.
Web2py: исходный код установки версии 1.99.2 (2011-09-26 06:55:33) стабильный.
pyodbc
Python 2.7.2

Я проверил, что я могу подключиться с помощьюpyodbc.Следующий код работает:

import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testDB;UID=testUser;PWD=password1')
cursor = cnxn.cursor()
cursor.execute("select * from tbUsers")
rows = cursor.fetchall()
for row in rows:
  print row

Спасибо за ваше время.

Кори.

Ответы [ 2 ]

1 голос
/ 26 октября 2011

Я только что получил решение от Массимо Ди Пьеро на форуме Web2Py . Он выяснил причину и обошёл дело.

Не уверен, что нужен "import pyodbc". После назначения драйвера он остался даже после перезапуска сервера.

# Test if the mssql driver is assigned. Sets it up if it isn't.
import pyodbc
from gluon.dal import MSSQLAdapter
if not (MSSQLAdapter.driver):
  MSSQLAdapter.driver = globals().get('pyodbc',None)

db = DAL('mssql://testUser:password@localhost/testDB')
0 голосов
/ 11 апреля 2013

Убедившись, что ваш логин правильный и у вас установлен pyodbc, убедитесь, что строка подключения к серверу выглядит следующим образом, если в имени вашего сервера базы данных есть обратная косая черта (например, localhost \ dbServerName ):

    db = DAL('mssql://testUser:password@localhost\dbServerName/testDB')

Вы также можете заменить локальный узел IP-адресом.

Среда:
Windows 7 Professional, 32-разрядная операционная система
SQL Server 2008 R2, подключающийся по сети
Web2py: исходный код, установка версии 2.4.6, стабильная
pyodbc: pyodbc-3.0.5.win32-py2.7.exe
Python 2.7.3

...