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

SQL-DMO 物件模型開發指南:常用屬性、方法與程式碼範例

     編輯:關於SqlServer

什麼是 SQL-DMO?

SQL Distributed Management Objects (SQL-DMO) 是 SQL Server 2000/2005 提供的 COM 物件模型,讓開發者以程式碼自動化管理 SQL Server:建立資料庫、管理登入、備份/還原、設定複寫、列舉伺服器等。雖已被 SMO (SQL Management Objects) 取代,但在維護舊系統時仍常遇到。

參考與初始化

  1. 專案 → 參考 → 勾選 Microsoft SQLDMO Object Library。
  2. 或直接指向 C:\Program Files\Microsoft SQL Server\80\Tools\Binn\SQLDMO.DLL。
Dim sqlApp As New SQLDMO.Application
Dim sqlSvr As New SQLDMO.SQLServer

核心物件與常用成員

SQLServer 物件

成員型別說明範例
LoginSecureProperty (Boolean)驗證模式:True=Windows 整合,False=SQL Server 驗證sqlSvr.LoginSecure = True
AutoReconnectProperty (Boolean)連線中斷是否自動重連sqlSvr.AutoReconnect = True
ConnectMethod連線至執行個體sqlSvr.Connect "ServerName", "sa", "pwd"
NetNameProperty (String)取得網路上的電腦名稱(非執行個體名)MsgBox sqlSvr.NetName
SQLDataRootProperty (String)設定/取得資料庫預設資料檔路徑sqlSvr.SQLDataRoot = "D:\MSSQL\Data"

Application 物件

方法回傳說明
ListAvailableSQLServers()NameList列舉區域網路可見的 SQL Server 執行個體

實務程式碼範例 (VB6/VBA)

列舉網路 SQL Server 執行個體

Dim sqlApp As New SQLDMO.Application
Dim nl As SQLDMO.NameList
Dim i As Long

Set nl = sqlApp.ListAvailableSQLServers
For i = 1 To nl.Count
    cboServers.AddItem nl.Item(i)
Next i

Windows 驗證連線並取得資料庫清單

Dim sqlSvr As New SQLDMO.SQLServer
Dim db As SQLDMO.Database

sqlSvr.LoginSecure = True
sqlSvr.AutoReconnect = True
sqlSvr.Connect "(local)"

For Each db In sqlSvr.Databases
    If Not db.SystemObject Then
        lstDatabases.AddItem db.Name
    End If
Next db

SQL Server 驗證連線並備份資料庫

Dim sqlSvr As New SQLDMO.SQLServer
Dim backup As New SQLDMO.Backup

sqlSvr.LoginSecure = False
sqlSvr.Connect "ServerName", "sa", "password"

Set backup.Database = "MyDB"
backup.Action = SQLDMOBackup_Database
backup.Files = "D:\Backup\MyDB.bak"
backup.SQLBackup sqlSvr

常見坑點與遷移建議

  • ⚠️ 32/64 位元相容:SQL-DMO 為 32 位元 COM,64 位元應用程式需啟用「Prefer 32-bit」或改用 SMO。
  • ⚠️ SQL Server 2012+ 移除:SQL-DMO 不再隨安裝媒體提供,新專案請直接使用 SMO (Microsoft.SqlServer.Management.Smo),語法類似但為 .NET 原生組件。
  • ⚠️ 權限需求:執行管理操作的帳號需具備 sysadmin 固定伺服器角色權限。

結語

SQL-DMO 是 SQL Server 早期自動化管理的利器。維護舊專案時掌握核心物件模型與連線模式,可快速定位問題;新開發請全面轉向 SMO 或 PowerShell (sqlserver 模組)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved