Я пытаюсь подключиться к экземпляру Azure SQL Server с ноутбука с установленным Jupyter.Совершенно новичок в этом, но есть проблемы, которые, вероятно, просто решить.
Я установил 64-битный Python 3.7, Jupyter и AMD64 v17 pyodbc через pip.Однако, когда я пытаюсь подключиться через Jupyter, у меня возникают проблемы с подключением или драйвером, я не совсем уверен.
Ниже приведен код, который я пытаюсь запустить, чтобы подключиться и вернуть простой запрос из первых 10 строк.
import pyodbc
server = 'xxxsqlserver.database.windows.net'
database = 'xxx.dbo.table'
username = 'user'
password = 'password'
driver='{ODBC Driver 17 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("SELECT TOP 10 * FROM xxx.dbo.table")
row = cursor.fetchone()
while row:
print (str(row[0]) + " " + str(row[1]))
row = cursor.fetchone()
Ниже приводится сообщение об ошибке, которое я получаю:
InterfaceError Traceback (последний последний вызов) в 5 пароль = 'пароль'6 driver = '{ODBC Driver 17 для SQL Server}' ----> 7 cnxn = pyodbc.connect ('DRIVER =' + driver + '; SERVER =' + server + '; PORT = 1433; DATABASE =' + database + '; UID = '+ username +'; PWD = '+ пароль) 8 cursor = cnxn.cursor () 9 cursor.execute ("ВЫБРАТЬ ТОП 10 * ОТ xxx.dbo.table")
InterfaceError: ('IM002 ',' [IM002] [Microsoft] [Диспетчер драйверов ODBC] Не найдено имя источника данных и не указан драйвер по умолчанию (0) (SQLDriverConnect) ')
Если я меняю драйвер13 Я получаю другую ошибку
InterfaceError: ('28000', '[28000] [Microsoft] [Драйвер ODBC 13 для SQL Server] [SQL Server] Вход в систему faiпривело для пользователя \ 'пользователь \'.(18456) (SQLDriverConnect);[28000] [Microsoft] [Драйвер ODBC 13 для SQL Server] [SQL Server] Не удается открыть базу данных «xxx.dbo.table», запрошенную при входе в систему.Ошибка входа(4060);[28000] [Microsoft] [Драйвер ODBC 13 для SQL Server] Недопустимый атрибут строки подключения (0);[28000] [Microsoft] [Драйвер ODBC 13 для SQL Server] [SQL Server] Ошибка входа для пользователя \ 'пользователь \'.(18456);[28000] [Microsoft] [Драйвер ODBC 13 для SQL Server] [SQL Server] Не удается открыть базу данных «xxx.dbo.table», запрошенную при входе в систему.Ошибка входа(4060);[28000] [Microsoft] [Драйвер ODBC 13 для SQL Server] Недопустимый атрибут строки подключения (0) ')
Чувствуется, что драйвер делает что-то не так, или ягде-то есть смещение.Примечание. Я не устанавливал драйверы версии 13, но у меня установлена система SSMS, в которой некоторые из них установлены, и это прекрасно подходит для платформы Azure.
Есть идеи?
Спасибо.