首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server Compact 3.5 DLL 檔案架構與功能對照表

     編輯:關於SqlServer

簡介

SQL Server Compact (SQL CE) 是**進程內 (In-Process)** 輕量級關聯式資料庫引擎,無獨立服務進程,以一組 DLL 載入應用程式記憶體空間運行。適用於桌面應用、行動裝置、離線同步、嵌入式場景。本文以 **SQL Server Compact 3.5** 為例,詳列各 DLL 檔案用途與呼叫關係。

核心 DLL 清單與功能對照

DLL 檔案核心功能呼叫層級備註
sqlceca35.dll**用戶端代理 (Client Agent)**同步層與伺服器端代理 (IIS/ASP.NET) 通訊,實現 **RDA (Remote Data Access)** 與 **Merge Replication** 合併式複寫同步。
sqlcecompact35.dll**資料庫修復/壓縮工具**維護層提供 CompactDatabase、Repair 等 API,處理資料庫損毀、碎片整理、縮減檔案大小。
sqlceer35EN.dll**錯誤訊息資源**資源層英文 (EN) 當地語系化資源,含錯誤代碼對應訊息字串。其他語言對應不同後綴 (DE, FR, JA, ZH-CHT 等)。
sqlceme35.dll**Managed 代碼擴展介面**互通層為 .NET Compact Framework / .NET Framework 提供原生互通封送,支援 SqlCeEngine、SqlCeResultSet 等進階 Managed API 底層實作。
sqlceoledb35.dll**OLE DB 提供者**資料存取層實作 IRowset, ICommand 等 OLE DB 介面,供傳統 ADO、VB6、C++ OLE DB Consumer 存取。
sqlceqp35.dll**查詢處理器 (Query Processor)**引擎核心解析、最佳化、執行 T-SQL 子集 (SELECT/INSERT/UPDATE/DELETE、JOIN、子查詢、彙總)、查詢計畫快取。
sqlcese35.dll**儲存引擎 (Storage Engine)**引擎核心管理資料頁面、索引 (B-Tree)、交易日誌 (WAL)、鎖定/並行控制、檢查點、恢復機制。核心效能決定因素。
System.Data.SqlServerCe.dll**ADO.NET Provider (Managed)**資料存取層實作 DbConnection, DbCommand, DbDataReader, DbTransaction 等標準介面,.NET CF / .NET Framework 應用主要入口。
System.Data.SqlServerCe.Entity.dll**Entity Framework 支援**ORM 層提供 SqlCeProviderServices、SqlCeConnectionFactory,支援 EF 4/5/6 Code First / Database First / Model First。

架構層級關係圖

應用程式 (C#/VB.NET)
    │
    ├─→ System.Data.SqlServerCe.dll (ADO.NET Provider)
    │        │
    │        ├─→ sqlceme35.dll (Managed Interop)
    │        │        │
    │        │        ├─→ sqlceqp35.dll (Query Processor) ──→ sqlcese35.dll (Storage Engine)
    │        │        │
    │        │        └─→ sqlcecompact35.dll (Repair/Compact)
    │        │
    │        └─→ System.Data.SqlServerCe.Entity.dll (EF Provider)
    │
    ├─→ sqlceoledb35.dll (OLE DB Provider) ──→ sqlceqp35.dll / sqlcese35.dll
    │
    └─→ sqlceca35.dll (Client Agent) ──→ HTTP/HTTPS ──→ Server Agent (IIS) ──→ SQL Server
              │
              └─→ sqlceer35EN.dll (Error Resources)

部署與版本注意事項

  • 私有部署:將上述 DLL 與應用程式放置同一目錄 (或子目錄 amd64/x86),無需註冊 COM、GAC 安裝,支援 x86/x64/ARM 架構對應版本。
  • 版本相容:3.5 SP2 為最終版本 (2011 釋出),主流支援 2016 結束,延伸支援 2021 結束。新專案建議遷移至 **SQLite** 或 **SQL Server Express LocalDB** (功能更完整、支援更新)。
  • 檔案大小:核心 DLL 總計約 2-3 MB,極適合嵌入式分發。
  • 同步限制:Merge Replication 需 IIS + SQL Server 發行者;RDA 僅支援單向 Pull/Push,無衝突解決。複雜離線同步建議改用 **Microsoft Sync Framework** + SQL CE。

常見問題排查

結語

SQL Server Compact 以 **9 支核心 DLL** 構建完整 In-Process 資料庫引擎:儲存引擎 + 查詢處理器 為核心,**ADO.NET/OLE DB Provider** 為存取介面,**Client Agent** 實現離線同步,**Managed Interop + EF Provider** 支援現代 .NET 開發,**修復工具 + 錯誤資源** 保障可靠性。雖已進入生命週期尾聲,但其架構設計仍為輕量級資料庫嵌入式開發的經典範本。現有專案維護請做好 DLL 私有部署、架構對應、定期 Compact/Repair;新專案評估 SQLite/LocalDB 以獲得長期支援與更豐富功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象可能原因排查步驟
啟動報「找不到 sqlcese35.dll」DLL 未隨應用部署、架構不符 (x86 應用載入 x64 DLL)檢查輸出目錄複製設定、專案目標平台、PrivateAssemblies 資料夾結構
同步失敗「無法連線伺服器」sqlceca35.dll 無法連達 IIS、防火牆阻擋、SSL 憑證不信任瀏覽器測試同步 URL、檢查 IIS 日誌、certutil -verify 憑證鏈
資料庫損毀/異常大未定期 Compact、交易日誌未截斷、異常中斷寫入呼叫 SqlCeEngine.Compact()、SqlCeEngine.Repair()、檢查磁碟空間
EF 遷移報誤「Provider 不支援」缺少 System.Data.SqlServerCe.Entity.dll、版本不符 (EF6 需 3.5 SP2 + EF6 提供者)NuGet 安裝 EntityFramework.SqlServerCompact、確認 DbProviderFactories 註冊