first commit
This commit is contained in:
51
check_drivers.py
Normal file
51
check_drivers.py
Normal file
@@ -0,0 +1,51 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user