DDBC即Direct Database Connectivity(直接数据库连接),是微软官方推出的mssql-python驱动的核心连接机制,无需额外安装ODBC这类外部驱动管理器,就能直接操作SQL Server,适配当前的Python与SQL Server集成开发场景。
1
基础环境要求
- Python版本需为 3.10及以上
- 支持的数据库范围:本地SQL Server、Azure SQL Database、Azure SQL托管实例、Microsoft Fabric中的SQL数据库
- 完全符合Python Database API Specification 2.0规范,同时做了Python生态友好的优化
2基础代码
安装支持库
pip install mssql-python
基本代码
"""建立数据库连接"""
# 配置连接信息
server = "localhost"
database = "WxpTemperatureDB"
username = "XXXXXX"
password = "XXXXXX"
# 构建连接字符串
# Encrypt=yes: 启用加密
# TrustServerCertificate=no: 开发环境可设为 yes 或使用自签名证书处理
conn_str = (
f"Server={server};"
f"Database={database};"
f"UID={username};"
f"PWD={password};"
"Encrypt=yes;"
"TrustServerCertificate=yes;"
)
#数据库连接
try:
self.WxpDataConnect =mssql_python.connect(conn_str)
if self.WxpDataConnect:
self.log_message(f"数据库连接成功")
else:
self.log_message(f"数据库连接失败")
except Exception as e:
messagebox.showerror("数据库连接错误", str(e))
具体数据库操作代码
#查询数据
sql = f"SELECT TOP 1000 [RowID] FROM [WxpTemperature] \
WHERE DataTime BETWEEN '{beginTime}' AND '{stopTime}';"
# 创建一个游标对象
#数据库连接
try:
if self.WxpDataConnect:
# 查看现有表
cursor=self.WxpDataConnect.cursor()
cursor.execute(sql)
dataset=cursor.fetchall()
cursor.close()
for i,row in enumerate(dataset,start=1):
tag = 'evenrow' if i % 2 == 0 else 'oddrow'
self.tree.insert("", tk.END, values=(i, f"{row[1]}",), tags=(tag,))
self.log_message(f"数据获取成功,数据量(最多1000):"+str(len(dataset)))
else:
self.log_message(f"数据获取失败")
except Exception as e:
# messagebox.showerror("数据库连接错误", str(e))
self.log_message(f"数据获取失败"+str(e))
3数据库用户的建立
主要是操作权限问题
3.1 设置验证方式

3.2 建立新用户

3.3 设置操作权限
