Проблемы подключения к базе данных Sybase в качестве вторичной базы данных с Django

Я могу подключиться к базе данных sybase с помощью FreeTDS и pyodbc следующим образом:

# hello_sybase.py

import pyodbc

try:
    con = pyodbc.connect('Driver={FreeTDS};'
            'Server=10.60.1.6,2638;'
                      'Database=blabla;'
                      'uid=blabla;pwd=blabla')
    cur = con.cursor()
    cur.execute("Select * from Test")
    for row in cur.fetchall():
        print (row)
    cur.close()
    con.close()
except Exception as e:
    print(str(e))

Я попытался подключиться в представлении django следующим образом:

import pyodbc

CONN_STRING = 'Driver={FreeTDS};Server=10.60.1.6,2638;Database=blabla;uid=blabla;pwd=blabla'


def my_view(request):
    with pyodbc.connect(CONN_STRING) as conn:
        cur = conn.cursor()
        cur.execute('SELECT * FROM test')
        rows = list(cur.fetchall())
    return render(request, 'my_template.html', {'rows': rows})

Когда я запускаю python manage.py runserver и выполняю код в приведенном выше представлении.

У меня такое сообщение об ошибке '08001', '[08001] [FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')

Я попытался поставить TDS_Version=7.4 как было указано здесь в комментарии, но это не помогло.

Возможно ли, что это проблемы с резьбой, как сказано в этом комментарии?

Как я могу это исправить? Код работает без django, но с python manage.py runserver он не работает.

Чтобы быть более точным, я использую этот фрагмент кода в представлении

if second_form.is_valid():
            try:
                con = pyodbc.connect(CONN_STRING)
                con.setdecoding(pyodbc.SQL_CHAR, encoding='cp1252')
                con.setdecoding(pyodbc.SQL_WCHAR, encoding='cp1252')
                con.setencoding(encoding='cp1252')
                cur = con.cursor()
                cur.execute("Select * from test")
                result2 = list(cur.fetchall())
                print(results2)
                cur.close()
                con.close()
                context['result2'] = result2
                context['form2'] = SecondForm(request.POST)
            except Exception as e:
                print (str(e))
Вернуться на верх