2016-07-05 3 views
-2

Возможно ли создать источник данных ODBC в Windows с помощью python 3?Создать Windows DSN с помощью python3

Следующий оператор успешно работает с python2, но не с python3, почему? ODBCCP32 доступен только в py2?

ctypes.windll.ODBCCP32.SQLConfigDataSource(0, 4, "Microsoft Access Driver (*.mdb)", 'Uid="Admin"\x00DESCRIPTION="pyscript"\x00DSN="PYTEST"\x00pwd=""\x00DBQ="C:\\pytest.mdb"')

+0

Что ошибка, если таковые имеются? –

+0

на python3 он возвращает 0. Сначала я подумал, что это потому, что я установил 64-битный питон и пытался создать источник данных доступа к 64-битным ms, но я переустановил 32-битный python 3, и источник данных все еще не может быть создан. – zaooza

ответ

0

Это не работает, потому что все строки в Python3 являются юникод строки по умолчанию.

Так что я должен был превратить его в объект «байтов» Liket это: ctypes.windll.ODBCCP32.SQLConfigDataSource(0, 4, bytes('Microsoft Access Driver (*.mdb)', 'iso-8859-1'), bytes('Uid=Admin\x00DESCRIPTION=pyscript\x00DSN=PYTEST\x00pwd=\x00DBQ=C:\\pytest.mdb', 'iso-8859-1'))

+0

Я не могу найти документы по этой функции. Есть ли способ обеспечить разбивку параметров? До сих пор у меня есть 'SQLConfigDataSource (?? int,? Int, байты драйверов, байты параметров)'. Я думаю, вопрос в том, что означает 'int'? –

+0

Возможно, это поможет: https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqlconfigdatasource-function – zaooza

Смежные вопросы