Python - 使用pyodbc使用Excel数据连接中的信息连接到远程服务器

时间:2015-11-16 16:48:02

标签: python sql sql-server pyodbc

我有一个excel(虽然是我们公司服务器上的一个),它与我们的SQL数据库有数据连接,所以我们可以制作好的数据透视表。

我想将这些数据导入python(在我的本地计算机上),这样我就可以更快地进行分析。

我已经安装了pyodbc。

这是"连接字符串"来自excel:

import pyodbc
cnxn = pyodbc.connect(DRIVER='{SQL Server}',SERVER='***server ip address**',DATABASE='**cataloguename**',UID='**myusername**',PWD='**mypassword**')
cursor = cnxn.cursor()

现在我有了python脚本:

testtable_1234

我收到的错误是SQL Server不存在或访问被拒绝。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:4)

你不需要在每个字段周围使用单引号,并且可能需要一个端口...尝试这样的事情:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.123.456;PORT=1433;DATABASE=yourdb;UID=your_user;PWD=your_pw;')
祝你好运!

答案 1 :(得分:1)

对于连接到远程服务器SQL,我发现此解决方案有效。 在此,端口号为important,即 1433

import pyodbc
server = 'tcp:***your_server_name*,1433' (i.e your_server_name = abcd.mydomain.com)
database = 'your_DB_NAME' 
username = 'Your_USER_NAME' 
password = 'YOUR_PASSWORD' 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()`enter code here`
cursor.execute('SELECT top 1 * FROM [DBNAME].[SchemaNAME].[YourTable]')
for row in cursor:
    print(row)

如果没有用户名和密码,则只需删除用户名和密码,然后添加Trusted_Connection=yes

请参阅此处的示例:

import pyodbc
server = 'tcp:***your_server_name*,1433' (i.e your_server_name = abcd.mydomain.com)
database = 'your_DB_NAME' 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';Trusted_Connection=yes')
cursor = cnxn.cursor()
cursor.execute('SELECT top 1 * FROM [DBNAME].[SchemaNAME].[YourTable]')
for row in cursor:
    print(row)

Ckick here for more details

答案 2 :(得分:-1)

请通过转到控制面板 - 管理工具 - ODBC连接

来安装SQL Server驱动程序