Python - 使用来自 Excel 数据连接的信息使用 pyodbc 连接到远程服务器
Python - Using pyodbc to connect to remote server using info from Excel data connection
我有一个 excel(尽管是在我们公司的服务器上),它与我们的 SQL 数据库建立了数据连接,因此我们可以制作漂亮的数据透视表。
我想将该数据输入 python(在我的本地计算机上)以便我可以进行一些更快的分析。
我已经安装了pyodbc。
这是 excel 中的 "connection string":
Provider=SQLOLEDB.1;Password=**mypassword**;Persist Security Info=True;User
ID=**myusername**;Initial Catalog=**catalogename**;Data
Source=**datasourcename**;Use Procedure for Prepare=1;Auto
Translate=True;Packet Size=4096;Workstation ID=**workstationid**;Use
Encryption for Data=False;Tag with column collation when possible=False
现在我有了 python 脚本:
import pyodbc
cnxn = pyodbc.connect(DRIVER='{SQL Server}',SERVER='***server ip address**',DATABASE='**cataloguename**',UID='**myusername**',PWD='**mypassword**')
cursor = cnxn.cursor()
我收到错误提示 SQL 服务器不存在或访问被拒绝。
非常感谢任何帮助。
您不需要在每个字段周围加上单引号,并且可能需要一个端口...尝试这样的操作:
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.123.456;PORT=1433;DATABASE=yourdb;UID=your_user;PWD=your_pw;')
祝你好运!
请通过控制面板-管理工具-ODBC连接安装SQL服务器驱动程序
为了连接到远程服务器 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)
我有一个 excel(尽管是在我们公司的服务器上),它与我们的 SQL 数据库建立了数据连接,因此我们可以制作漂亮的数据透视表。
我想将该数据输入 python(在我的本地计算机上)以便我可以进行一些更快的分析。
我已经安装了pyodbc。
这是 excel 中的 "connection string":
Provider=SQLOLEDB.1;Password=**mypassword**;Persist Security Info=True;User
ID=**myusername**;Initial Catalog=**catalogename**;Data
Source=**datasourcename**;Use Procedure for Prepare=1;Auto
Translate=True;Packet Size=4096;Workstation ID=**workstationid**;Use
Encryption for Data=False;Tag with column collation when possible=False
现在我有了 python 脚本:
import pyodbc
cnxn = pyodbc.connect(DRIVER='{SQL Server}',SERVER='***server ip address**',DATABASE='**cataloguename**',UID='**myusername**',PWD='**mypassword**')
cursor = cnxn.cursor()
我收到错误提示 SQL 服务器不存在或访问被拒绝。
非常感谢任何帮助。
您不需要在每个字段周围加上单引号,并且可能需要一个端口...尝试这样的操作:
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.123.456;PORT=1433;DATABASE=yourdb;UID=your_user;PWD=your_pw;')
祝你好运!
请通过控制面板-管理工具-ODBC连接安装SQL服务器驱动程序
为了连接到远程服务器 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)