gpt4 book ai didi

python pyodbc : how to connect to a specific instance

转载 作者:太空狗 更新时间:2023-10-29 18:00:14 25 4
gpt4 key购买 nike

我正在尝试连接到 SQL Server 的特定实例并从系统表中获取一些数据。正在使用此代码片段进行连接:

connSqlServer = pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=192.106.0.102;DATABASE=master;INSTANCE=instance1;UID=sql2008;PWD=password123;Trusted_Connection=yes')
...
cursorObj.execute("select * from sys.dm_os_sys_info")
row = cursorObj.fetchone()
print("rows from table ",row)

但是我只能获取默认实例的值,但无法获取“instance1”的值。所以,在“INSTANCE=instance1”中给出实例名称似乎真的没有效果。即使没有它(尝试提供实例的端口号“PORT=1443”),我也只能获取默认 SQL Server 实例的值。如何强制它获取特定实例的值?

最佳答案

身份验证

首先,您要同时提供 uid/pwd(SQL Server 身份验证)和 trusted_connection(Windows 身份验证)。选一个,不能两个都用。 我将为以下示例假设 SQL Server 身份验证。

连接字符串

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

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

使用端口号 1443 使用 TCP/IP 连接到命名实例:

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.102\instance1',
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')

关于 python pyodbc : how to connect to a specific instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25505081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com