核心設定屬性關鍵字/值對照
| 關鍵字 | 可用值 | 說明 |
| DSN | 資料來源名稱 | ODBC 管理員顯示的名稱,系統/使用者 DSN 唯一識別碼。 |
| Server / Address | 網路位址 | SQL Server 執行個體主機名或 IP。 |
| Database | 資料庫名稱 | 預設連線資料庫。 |
| Trusted_Connection | yes / no | Windows 整合驗證(yes)或 SQL 驗證(no)。 |
| AnsiNPW | yes(預設) / no | 啟用 ANSI_NULLS、ANSI_WARNINGS、ANSI_PADDING、CONCAT_NULL_YIELDS_NULL = ON。 |
| AutoTranslate | yes(預設) / no | 用戶端/伺服器字碼頁自動轉換。 |
| AttachDBFileName | 檔案完整路徑 | 附加 .mdf 為預設資料庫,需雙重跳脫反斜線(C 字串)。
AttachDBFileName=C:\\Data\\MyDB.mdf |
| Failover_Partner | 鏡像夥伴伺服器 | 資料庫鏡像容錯移轉目標。 |
| Application_Name | 應用程式名稱 | 寫入 sys.dm_exec_sessions.program_name。 |
| Description | 文字描述 | DSN 說明資訊。 |
| Language | 語言名稱 | 連線預設語言(如 us_english)。 |
| PacketSize | 整數(4096~32767) | TDS 封包大小。 |
| QuotedId | yes / no | 支援雙引號識別碼(yes 符合 ANSI SQL-92)。 |
| Regional | yes / no | 使用用戶端地區設定格式化貨幣/日期/數值。 |
| SaveFile | 檔案路徑 | 將 DSN 另存為 .dsn 檔(檔案 DSN)。 |
程式化建立/修改 DSN 範例
// C++ / C# P/Invoke 呼叫 ODBC 安裝程式 API
BOOL SQLConfigDataSource(
HWND hwndParent, // 父視窗(NULL 為無訊息盒)
WORD fRequest, // ODBC_ADD_DSN / ODBC_CONFIG_DSN / ODBC_REMOVE_DSN
LPCSTR lpszDriver, // 驅動程式描述,如 "SQL Server"
LPCSTR lpszAttributes // 關鍵字=值 雙重空字元結尾字串
);
// 屬性字串格式:"DSN=MyDSN\0Server=192.168.1.10\0Database=TestDB\0Trusted_Connection=yes\0\0"
const char* attrs = "DSN=MyDSN\0Server=192.168.1.10\0Database=TestDB\0Trusted_Connection=yes\0\0";
SQLConfigDataSource(NULL, ODBC_ADD_DSN, "SQL Server", attrs);
注意事項
- 屬性字串必須以**雙重空字元(\0\0)**結尾,每組 Key=Value 以單一 \0 分隔。
AttachDBFileName 指定時,Database 仍需提供邏輯資料庫名稱(附加後的名稱)。
- 64 位元應用需呼叫 64 位元
odbccp32.dll;32 位元應用呼叫 32 位元版本(SysWOW64)。
- 系統 DSN 需管理員權限;使用者 DSN 僅對當前使用者可見。