无法从服务器下载SQL数据库



我被要求使用pyodbc下载一些数据,但是我有一些问题,下面是代码:

import pyodbc
import pandas as pd

conn = pyodbc.connect("Driver={SQL Server};"
"Server=database.net;"
"Database=Spectrometry;"
"uid=user;pwd=password")

Users = pd.read_sql("SELECT * FROM Users", conn)
Activity = pd.read_sql("SELECT * FROM Activity", conn)

执行后,我得到:

InterfaceError: ('IM002', '[IM002] [Microsoft] [ODBC Driver Manager]数据源名称未找到且未指定默认驱动程序(0)(SQLDriverConnect)")

我觉得你在写代码时可能犯了一个小错误。查看文档和可用的示例。

我认为应该是:

import pyodbc
import pandas as pd

conn = pyodbc.connect("Driver=SQL Server;"  #  <= No {} needed
"Server=database.net;"
"Database=Spectrometry;"
"uid=user;pwd=password")

Users = pd.read_sql("SELECT * FROM Users", conn)
Activity = pd.read_sql("SELECT * FROM Activity", conn)

我可能要补充的另一件事是,您是否检查了您的设置上可用的odbc驱动程序?我建议你运行:

import pyodbc
pyodbc.drivers()

它应该为您提供可用驱动程序名称的列表(您需要在connect方法上指定的名称)。如果列表为空,您可能需要研究如何在您的环境中安装odbc驱动程序。对于sql server版本15,它们可以在这里获得。

连接字符串

使用实例名连接到命名实例instance1:

connSqlServer = pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=192.106.0.102instance1;DATABASE=master;UID=sql2008;PWD=password123')

使用TCP/IP连接指定实例,端口号为1443:

connSqlServer = pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=192.106.0.102,1443;DATABASE=master;UID=sql2008;PWD=password123')

pyodbc.connect()支持关键字,我认为这些更容易阅读,如果你使用变量作为连接字符串属性,你不必做任何字符串格式化:

命名的实例:

connSqlServer = pyodbc.connect(driver='{SQL Server Native Client 10.0}',
server='192.106.0.102instance1',
database='master',
uid='sql2008',pwd='password123')
TCP/IP端口:

connSqlServer = pyodbc.connect(driver='{SQL Server Native Client 10.0}',
server='192.106.0.102,1443',
database='master',
uid='sql2008',pwd='password123')

相关内容

  • 没有找到相关文章

最新更新