Я искал в Интернете весь день, пробовал много решений, но ни одно из них не работает. Я могу вручную подключиться к этому серверу, но не с помощью Python, я получаю эту ошибку:
pyodbc.OperationalError: ('08001', '[08001] [Microsoft] [Драйвер ODBC SQL Server] [DBNETLIB] SQL Server не существует или доступ запрещен. (17) (SQLDriverConnect); [08001] [Microsoft] [ODBC SQL Драйвер сервера] [DBNETLIB] ConnectionOpen (Connect ()). (5); [08001] [Microsoft] [Драйвер ODBC SQL Server] Недопустимый атрибут строки подключения (0) ')
Я пробовал следующее:
A)
cnx = pyodbc.connect(Driver='{SQL Server}', SERVER=self.DBserver, DATABASE=xyz, username=self.DBusername, password=self.DBpassword, PORT = 1433)
B)
cnx = pyodbc.connect('''Driver={SQL Server}; SERVER=tcp:<self.DBserver>; PORT=self.DBPort; DATABASE=xyz; UID=self.DBusername; PWD=self.DBpassword''')
C)
cnx = = pyodbc.connect(Driver='{SQL Server}', SERVER=self.DBserver, DATABASE=xyz, UID=self.DBusername, PWD=self.DBpassword)
self.DBusername
, а не значение этого свойства. Однако ваш второй пример действительно использует правильные имена атрибутовUID=
иPWD=
. Кроме того, драйверы Microsoft ODBC не используютPORT=
, но вы указали порт как 1433, так что, по-видимому, это не имеет значения, потому что это значение по умолчанию. Попробуйте второй подход, используяf'''string'''
, и посмотрите, поможет ли это. - person Gord Thompson   schedule 01.02.2020self
не распространяются. - person Parfait   schedule 01.02.2020