51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
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() |