Files
BLD_sync/check_drivers.py
Misaka_Company 77b72392a3 first commit
2026-01-06 15:40:38 +08:00

51 lines
1.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import pyodbc
def check_drivers():
print("正在扫描系统 ODBC 驱动...\n")
try:
drivers = pyodbc.drivers()
except Exception as e:
print(f"❌ 错误: 无法读取驱动列表。原因: {e}")
return
if not drivers:
print("❌ 未找到任何 ODBC 驱动。")
return
print(f"✅ 共发现 {len(drivers)} 个驱动:")
print("=" * 50)
for d in drivers:
print(f"{d}")
print("=" * 50)
print("\n[配置建议]")
# --- 1. 寻找 SQL Server 驱动 ---
# 优先级ODBC Driver 18 > 17 > 13 > Native Client > SQL Server (旧)
sql_candidates = [d for d in drivers if "SQL Server" in d]
best_sql = None
# 简单的版本优先级判断
if any("ODBC Driver 18" in d for d in sql_candidates):
best_sql = "ODBC Driver 18 for SQL Server"
elif any("ODBC Driver 17" in d for d in sql_candidates):
best_sql = "ODBC Driver 17 for SQL Server"
elif any("ODBC Driver 13" in d for d in sql_candidates):
best_sql = "ODBC Driver 13 for SQL Server"
elif sql_candidates:
best_sql = sql_candidates[0] # 随便取一个其他的
if best_sql:
print(f"👉 SQL Server 驱动 (填入 config.py): {{{best_sql}}}")
else:
print("⚠️ 未找到 SQL Server 驱动,请下载安装 'ODBC Driver 17 for SQL Server'")
# --- 2. 寻找 Access 驱动 ---
acc_candidates = [d for d in drivers if "Access Driver" in d]
if acc_candidates:
print(f"👉 Access 驱动 (填入 config.py): {{{acc_candidates[0]}}}")
else:
print("⚠️ 未找到 Access 驱动,请下载安装 'Access Database Engine'")
if __name__ == "__main__":
check_drivers()