Python - Pyodbc 连接错误

Python - Pyodbc Connection error

我正在尝试使用 Python3.4

连接到 SQL 服务器数据库

这是适合我的代码

cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=DESKTOP-GDM2HQ17\SQLEXPRESS;DATABASE=pyconnect;Trusted_Connection=yes')

然后我使用 Windows 连接登录到我的管理工作室 - 数据库。

这是代码,它对我不起作用:

cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER=DESKTOP-GDM2HQ17\SQLEXPRESS;DATABASE=pyconnect;UID=DESKTOP-GDM2HQ17\sid;PWD=123')

请分享您对我哪里出错的想法。

有两个SQL Server Authentication modes:

1,通过 Windows 身份验证连接:

当用户通过 Windows 用户帐户连接时,SQL 服务器使用操作系统中的 Windows 主体令牌验证帐户名和密码。

2,通过 SQL 服务器身份验证连接:

当使用 SQL 服务器身份验证时,将在 SQL 服务器中创建不基于 Windows 用户帐户的登录。用户名和密码都是使用SQL服务器创建并存储在SQL服务器中。

您的第一个代码可以正常工作,因为它正在通过 Windows 身份验证进行连接。

您的第二个代码无法正常工作,因为它正在尝试查找存储在 SQL 服务器中的凭据(登录名和密码),但凭据不是在 SQL 服务器中创建的。

此外,您可以参考官方文档了解如何Change Server Authentication Mode。 希望对你有帮助。

DRIVER='{SQL 服务器}' 有效

下面的代码已经过测试.....

import pyodbc
con = pyodbc.connect('Driver={SQL Server};'
                  'Server=LAPTOP-PPDS6BPG;'
                  'Database=training;'
                  'Trusted_Connection=yes;')

cursor = con.cursor()
sql_query =  'SELECT * FROM Students'
cursor.execute(sql_query)

for row in cursor:
    print(row)

这对我来说比我能找到的任何其他产品都好

import pyodbc 
import pandas as pd

conn = pyodbc.connect('Driver={SQL Server};'
                      'Server=10.****;'
                      'Database=Ma**;'
                      'UID=sql**;'
                      'PWD=sql**;')

cursor = conn.cursor()

sql = """\
EXEC [dbo].[GetNewPayment] @Login=?, @PasswordMD5=?, @RevokeTimeFrom=?, @RevokeTimeTo=? Status=?
"""
params = ('a***', 'c2ca***', '2021-05-01','2021-05-02', '3')
cursor.execute(sql, params)