96 lines
3.2 KiB
Plaintext
96 lines
3.2 KiB
Plaintext
|
|
================================================================================
|
|||
|
|
SQL Server 打包问题 - 快速修复指南
|
|||
|
|
================================================================================
|
|||
|
|
|
|||
|
|
问题:打包后程序能启动,但SQL Server访问不了
|
|||
|
|
|
|||
|
|
================================================================================
|
|||
|
|
快速修复步骤
|
|||
|
|
================================================================================
|
|||
|
|
|
|||
|
|
1. 重新打包(使用修复脚本)
|
|||
|
|
|
|||
|
|
powershell -ExecutionPolicy Bypass -File .\rebuild_with_sqlserver_fix.ps1
|
|||
|
|
|
|||
|
|
2. 验证打包结果
|
|||
|
|
|
|||
|
|
cd .\dist\docx_creator
|
|||
|
|
dir *.dll | Select-Object Name
|
|||
|
|
dir *.pyd | Select-Object Name
|
|||
|
|
|
|||
|
|
应该看到:
|
|||
|
|
- sybdb.dll 或 libtds.dll
|
|||
|
|
- _mssql.pyd
|
|||
|
|
- pyodbc.pyd
|
|||
|
|
|
|||
|
|
3. 运行诊断工具
|
|||
|
|
|
|||
|
|
Copy-Item .\test_sqlserver_in_exe.py .\dist\docx_creator\
|
|||
|
|
cd .\dist\docx_creator
|
|||
|
|
python test_sqlserver_in_exe.py
|
|||
|
|
|
|||
|
|
4. 测试主程序
|
|||
|
|
|
|||
|
|
.\dist\docx_creator\docx_creator.exe
|
|||
|
|
|
|||
|
|
================================================================================
|
|||
|
|
已实施的修复
|
|||
|
|
================================================================================
|
|||
|
|
|
|||
|
|
✅ 修改了 docx_creator_fixed.spec
|
|||
|
|
- 自动查找并打包pymssql的DLL和PYD文件
|
|||
|
|
- 自动查找并打包pyodbc的PYD文件
|
|||
|
|
- 添加必要的隐藏导入(_mssql, decimal, uuid)
|
|||
|
|
- 添加运行时hook
|
|||
|
|
|
|||
|
|
✅ 创建了 hook-pymssql.py
|
|||
|
|
- 确保DLL搜索路径正确
|
|||
|
|
|
|||
|
|
✅ 创建了诊断工具
|
|||
|
|
- test_sqlserver_in_exe.py
|
|||
|
|
|
|||
|
|
✅ 创建了一键打包脚本
|
|||
|
|
- rebuild_with_sqlserver_fix.ps1
|
|||
|
|
|
|||
|
|
================================================================================
|
|||
|
|
如果仍然无法连接
|
|||
|
|
================================================================================
|
|||
|
|
|
|||
|
|
情况1:pymssql导入失败
|
|||
|
|
→ 检查 dist\docx_creator\ 中是否有 sybdb.dll
|
|||
|
|
→ 运行诊断工具查看详细错误
|
|||
|
|
|
|||
|
|
情况2:pyodbc连接失败
|
|||
|
|
→ 在目标机器上安装 Microsoft ODBC Driver for SQL Server
|
|||
|
|
→ 下载地址:https://docs.microsoft.com/en-us/sql/connect/odbc/
|
|||
|
|
|
|||
|
|
情况3:两者都失败
|
|||
|
|
→ 运行诊断工具获取详细错误信息
|
|||
|
|
→ 检查SQL Server配置(防火墙、端口等)
|
|||
|
|
|
|||
|
|
================================================================================
|
|||
|
|
推荐配置
|
|||
|
|
================================================================================
|
|||
|
|
|
|||
|
|
优先使用 pymssql(自带驱动,易于打包)
|
|||
|
|
备用方案 pyodbc(需要系统ODBC驱动)
|
|||
|
|
|
|||
|
|
代码示例:
|
|||
|
|
try:
|
|||
|
|
import pymssql
|
|||
|
|
conn = pymssql.connect(server, database, user, password)
|
|||
|
|
except:
|
|||
|
|
import pyodbc
|
|||
|
|
conn = pyodbc.connect(connection_string)
|
|||
|
|
|
|||
|
|
================================================================================
|
|||
|
|
相关文档
|
|||
|
|
================================================================================
|
|||
|
|
|
|||
|
|
详细说明:SQL_SERVER_打包解决方案.md
|
|||
|
|
修复总结:SQL_SERVER_打包问题修复总结.md
|
|||
|
|
诊断工具:test_sqlserver_in_exe.py
|
|||
|
|
打包脚本:rebuild_with_sqlserver_fix.ps1
|
|||
|
|
|
|||
|
|
================================================================================
|