SQLDMO.dll是隨SQL Server2000一起發布的。SQLDMO.dll自身是一個COM對象
SQLDMO(SQL Distributed Management Objects,SQL分散式管理物件)封裝 Microsoft SQL Server 2000 資料庫中的對象。SQL-DMO 允許用支援自動化或 COM 的語言編寫應用程式,以管理 SQL Server 安裝的所有部分。SQL-DMO 是 SQL Server 2000 中的 SQL Server 企業管理器所使用的應用程式介面 (API);因此使用 SQL-DMO 的應用程式可以執行 SQL Server 企業管理器執行的所有功能。
------
SQLServer的大致關係:
Application-->SQLServer-->DataBase
------
執行個體SQLDMO,主要用到的是其中的以下幾個類:
SQLDMO.Application(使用 SQLDMO.ApplicationClass建立)、
SQLDMO.SQLServer(使用SQLDMO.SQLServerClass建立,主要用到它的Connect來串連資料庫伺服器)、
SQLDMO.NameList(可以通過它和Application擷取伺服器集合,其它的請看其API)
SQLDMO.DataBase(可以通過它和SQLServer.DataBases擷取資料庫集合)
樣本一:擷取區域網路內SQL伺服器列表
主要用到Application的ListAvaiableSQLServers來擷取NameList, 1 SQLDMO.Application sqlapp = new SQLDMO.ApplicationClass();
2 SQLDMO.NameList names = sqlapp.ListAvailableSQLServers();
3 ServerList.Items.Clear();
4 for(int i=1;i<names.Count;i++)
5 {
6 if(names.Item(i)!=null)
7 ServerList.Items.Add(names.Item(i));
8 }
9 if(ServerList.Items.Count>0)
10 {
11 ServerList.SelectedIndex = 1;
12 }
13 else
14 {
15 ServerList.Text = "沒有可用的SQL伺服器";
16 }
樣本二:擷取某個伺服器下的資料庫列表:
主要用到SQLServer以及其屬性DataBases 1
2 SQLDMO.SQLServer database= new SQLServerClass();
3 try
4 {
5 database.Connect(ServerList.SelectedItem.Text, "sa", "");
6 DataBaseList.Items.Clear();
7 foreach (SQLDMO.Database db in database.Databases)
8 {
9 DataBaseList.Items.Add(db.Name);
10 }
11 }
12 catch (System.Exception ee)
13 {
14 DataBaseList.Items.Clear();
15 DataBaseList.Items.Add("無法串連所選伺服器");
16 }
然後擷取資料庫的屬性等就是手到拿來了。。。
^_^