PDA

View Full Version : به دست آوردن نام سرورها در شبکه



jk
شنبه 13 آبان 1385, 16:18 عصر
تعداد برنامه دیدم که لیست تمامی سرورهای اس گیو ال موجود در شبکه را در داخل کومبو به کاربر نشان میدهند برای انتخاب ....
به چه صورتی می توانم لیست نام تمامی سرورهای اس گیو ال را به دست بیاورم

majid_afra222
شنبه 13 آبان 1385, 18:53 عصر
سلام
http://www.csharphelp.com/archives2/archive342.html
برای اطلاعات بیشتر SQL-DMO رو جستجو کن.

AminSobati
شنبه 13 آبان 1385, 19:04 عصر
DMO میتونه به صورت Collection اون رو برگردونه ولی متاسفانه اسم Objectش خاطرم نیست! به نظرم Server بود...

jk
یک شنبه 14 آبان 1385, 09:54 صبح
از دوستانی که بنده رو راهنمایی کردند تشکر میکنم

مجموعه کد زیر در محیط وی بی جهت به دستور آوردن نام سرورهای رجیستر شده به کار می ره

Dim MySQLServer As New SQLDMO.SQLServer
Dim i As Integer
Dim p As String

For i = 1 To MySQLServer.Application.ListAvailableSQLServers.Co unt
p = MySQLServer.Application.ListAvailableSQLServers.It em(i)
Next

قبل از بکار بردن دستورات فوق بایستی به مراجعه به رفرنس وی بی کامپوننت زیر را فعال کنید

Microsoft SQLDMO Object Library



با تشکر

jk
یک شنبه 14 آبان 1385, 13:03 عصر
موقعی که از دستورات فوق استفاده می کنم به مشکلی بر می خورم و اون اینه که بعضی وقتها دستوارت فوق جواب درست نمی دهند
به عنوان مثال
MySQLServer.Application.ListAvailableSQLServers.Co unt
مقدار صفر برگشت می ده
دلیلش از چی می تونه باشه

mohebbi_en
یک شنبه 14 آبان 1385, 14:54 عصر
سلام
دستور select @@servername را امتحان کنید.

jk
یک شنبه 14 آبان 1385, 15:21 عصر
سلام
دستور select @@servername را امتحان کنید.

دستور فوق فوق سرور کامپیوتر محلی (لوکال) را نشان میده

jk
یک شنبه 14 آبان 1385, 16:29 عصر
موقعی که با استفاده از دستوارت زیر لیست سرورهای اس گیو ال موجود در کل شبکه را به دست می آوریم
For i = 1 To MySQLServer.Application.ListAvailableSQLServers.Co unt
p = MySQLServer.Application.ListAvailableSQLServers.It em(i)
Next

دستورات فوق برای اس گیو ال محلی مقدار زیر را بر می گرداند
(local)

که این مقدار در صورتی که نام دیگری بر روی سرور گذاشته باشید نشان دهنده نام واقعی سرور اس گیو ال محلی نمی باشد
برای به دست آوردن نام واقعی اس گیو ال سرور از مجموعه دستورات زیر در محیط وی بی استفاده کنید

p = MySQLServer.Application.ListAvailableSQLServers.It em(i)
If p = "(local)" Then
MySQLServer.LoginSecure = True
MySQLServer.Connect "(local)"
p = MySQLServer.HostName
End If