我有一个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不存在或访问被拒绝。
非常感谢任何帮助。
答案 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)
答案 2 :(得分:-1)
请通过转到控制面板 - 管理工具 - ODBC连接
来安装SQL Server驱动程序