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
|
||
|
||
================================================================================
|