打包部署的應用程式 (如 PowerBuilder) 在客戶端機器未安裝 SQL Server Client 時無法連線資料庫。僅複製常見 DLL (ntwdblib.dll、dbnetlib.dll 等) 仍提示連線失敗,安裝完整 SQL Server 後才正常。
ntwdblib.dll 版本需 ≥ 2000.80.194.0 含 SP4 修正)pbvm80.dll (PowerBuilder VM,若非 PB 應用則不需)dbnetlib.dll (網路庫核心)dbnmpntw.dll (Named Pipes 網路庫)ntwdblib.dll (DB-Library 兼容層,關鍵!)| 類別 | 檔案 |
|---|---|
| PB 運行時 | PBMss80.dll、libjcc.dll、pbvm80.dll、pbdwe80.dll、libjotsclnt.dll、PBRTC80.DLL、PBTRA80.DLL、pbodb80.dll、pbdwo80.dll、pbdwp80.dll |
| SQL Client 驅動 | dbnetlib.dll、dbnmpntw.dll、ntwdblib.DLL、DBMSSOCN.DLL、WINDBVER.EXE |
@echo off
rem sqlconfig.bat - 複製 DLL 至 System32 (需管理員權限)
copy *.dll %systemroot%\system32
rem 或僅放在 EXE 目錄 (免管理員權限,推薦)
rem 確保應用程式目錄在 PATH 中或設定 App Paths 註冊表
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo]
"DSQUERY"="DBMSSOCN"
"ServerAlias"="DBMSSOCN,ServerName,1433"
說明: 強制使用 TCP/IP Sockets (DBMSSOCN) 連線 ServerName:1433,避免 Named Pipes 預設優先導致防火牆阻擋。
ntwdblib.dll 版本 ≥ 2000.80.194.0 (含 SP4 修正連線重設問題)cliconfg.exe (用戶端網路工具) 啟用 TCP/IP、設定別名osql -S ServerName -U user -P pwd -d dbname 連線System.Data.SqlClient 或 Microsoft.Data.SqlClient (無額外 Client 安裝需求)「核心 4 DLL + EXE 同目錄」為舊版應用 (PB/VB6/Delphi) 最輕量部署模式;新開發專案請直接採用最新官方驅動程式。