查出在一台伺服器中,同時安裝多少個執行個體(Instance) |
最近開發 KONNEX (KNX)相關的程式,這個協會有提供特定的軟體給使用者設定並開發,其中也會安裝資訊庫。如果要自動設定 physical address 就必須讀取相關的 firmware info. 又要配合專案......唉,真是一言難盡。
以下是針對未來使用者可藉由不同的執行個體(Instance)名稱,作為存取資料庫系統依據的程式碼
-----------------------------------------------------------
Sub ScanSQLInstance()
'指定在 64 位元作業系統上以哪個登錄檢視為目標
Dim RV As RegistryView
If Not Registry.LocalMachine.OpenSubKey("SOFTWARE\Wow6432Node") Is Nothing Then
RV = RegistryView.Registry64
Else
RV = RegistryView.Registry32
End If
'登錄機碼節點
Dim baseKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RV)
'節點下的子機碼
Dim key As RegistryKey = baseKey.OpenSubKey("SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL")
ListBox1.Items.Add(key.Name)
ListBox1.Items.Add("-----------------------------------------------")
'列出所有機碼名稱的字串陣列
For Each s As String In key.GetValueNames()
ListBox1.Items.Add(s)
Next
'收工 ^^
key.Close()
baseKey.Close()
End Sub
搜尋含區域網路內sql執行個體
Using System.Data.Sql
Dim sqlServer As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
Dim db As DataTable = sqlServer.GetDataSources()
Dim Name As String() = New String(db.Rows.Count - 1) {}
For i As Integer = 0 To db.Rows.Count - 1
Name(i) = db.Rows(i)(0).ToString() + db.Rows(i)(1).ToString().Trim()
toolStripTextBox1.Items.Add(Name(i))
Next
沒有留言:
張貼留言