Список SQL-серверов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Список SQL-серверов

Сообщение Sandr0 » 17.10.2005 (Пн) 15:36

Мое почтение, Уважаемые!

Суть задачи такова - необходимо получить имена sql-серверов в локальной сети (рассматривать варианты с доменом и без).

Какие есть предложения?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 17.10.2005 (Пн) 18:42

Предложения имеет смысл высказывать, когда решение задачи заранее неизвестно. А в этом случае все должно выгугливаться за несколько секунд.

Вкратце - бродкаст на UDP 1434 и ждать ответов. Или, если sql monitor закрыт, перебирать все машины и пытаться коннектиться на TCP 1433. Правда, это дефолтный порт сиквела, и меняется он в настройках на раз, так что в общем случае решения задача не имеет. Да, домен ничего не меняет - сервер вовсе необязательно будет листиться в AD.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 17.10.2005 (Пн) 19:40

Копать здесь :!:
Код: Выделить всё
Public Const SV_TYPE_SERVER = &H2
Public Declare Function NetServerEnum _
    Lib "Netapi32.dll" ( _
    vServername As Any, _
    ByVal lLevel As Long, _
    vBufptr As Any, _
    lPrefmaxlen As Long, _
    lEntriesRead As Long, _
    lTotalEntries As Long, _
    vServerType As Any, _
    ByVal sDomain As String, _
    vResumeHandle As Any) _
    As Long

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 18.10.2005 (Вт) 10:24

послал на 1434 и слушаю его же. ответа нет. монитор висит.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 18.10.2005 (Вт) 10:39

в принципе сам нашел ответ
подключаем библиотеку sqldmo, которая входит в состав sql

Код: Выделить всё
    Dim СписокСерверов As SQLDMO.Application
    Dim i As Integer
    Dim namX As NameList
    Set СписокСерверов = New SQLDMO.Application
    Set namX = СписокСерверов.ListAvailableSQLServers
    For i = 1 To namX.Count
        msgbox namX.Item(i)
    Next

и все работает

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 18.10.2005 (Вт) 12:03

будет работать только там, где эта библиотека установлена!

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 18.10.2005 (Вт) 12:16

ну дык для этого инсталяху делать треба

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.10.2005 (Вт) 13:25

Sandr0 писал(а):ну дык для этого инсталяху делать треба


Эта библиотека тянет за собой и другие из комплекта SQL-сервера ;)

Ищи - я закидывал код примера...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 18.10.2005 (Вт) 13:57

Эта библиотека тянет за собой и другие из комплекта SQL-сервера

спасибо что подсказал - надо сразу проверить

а по поводу поиска твоего кода - сие весьма проблематично (поиском найдено 1538 сообщений)
то что нешел http://bbs.vbstreets.ru/viewtopic.php?p=45503&highlight=#45503 интересный... вот только есть еще один вопрос - как проверить установленно ли подключение и проверить список баз?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.10.2005 (Вт) 14:00

Lasciate ogni speranza, voi ch'entrate.

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 18.10.2005 (Вт) 14:12

оттуда и взял пример
но только сильно не копал
видел, что получаем список имен серверов, а про список баз не видал
чуть позже погляжу, если не трудно может подскажешь как получить список баз используя api?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.10.2005 (Вт) 14:16

Sandr0 писал(а):оттуда и взял пример
но только сильно не копал
видел, что получаем список имен серверов, а про список баз не видал
чуть позже погляжу, если не трудно может подскажешь как получить список баз используя api?


Именно API???

А не проще: sp_helpdb :lol:
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 18.10.2005 (Вт) 14:23

Andrey Fedorov
в твоем примере используется API ведь?
в принципе без разницы что использовать, лишь бы стандартными средствами без sqldmo

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.10.2005 (Вт) 14:31

Sandr0 писал(а):Andrey Fedorov
в твоем примере используется API ведь?


Да, но лишь для получения списка серверов. Это не значит что на API все пишется.

Sandr0 писал(а):в принципе без разницы что использовать, лишь бы стандартными средствами без sqldmo


Ну я и говорю - подключаешься к серверу и sp_helpdb.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 18.10.2005 (Вт) 14:42

шпасиба
чуток освобожусь - и попробую

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 18.10.2005 (Вт) 15:00

Andrey Fedorov писал(а):
Sandr0 писал(а):ну дык для этого инсталяху делать треба

Эта библиотека тянет за собой и другие из комплекта SQL-сервера ;)

вот вже плин... действительно Error 1904 sqldmo failed to register

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.10.2005 (Вт) 15:12

Sandr0 писал(а):вот вже плин... действительно Error 1904 sqldmo failed to register


Чтобы она просто зарегистрирась достаточно один файлик добавить, но это все одно не поможет ибо ей для работы еще куча других понадобится. Кроме того сия DLL-ка из комплекта сервера и даже если бы она регистрирась, то наверняка распространяя ее отдельно ты нарушил бы лицензионное соглашение. Так что ее можно пользовать, но только на той машине где находится клиентская часть сервера (в некоторых случаях это приемлимо).
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 18.10.2005 (Вт) 15:24

мдя
еще раз убеждаюсь, что если ничего не помогает читайте хэлп (msdn)
ток времени бы побольше

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.10.2005 (Вт) 15:46

Sandr0 писал(а):мдя
еще раз убеждаюсь, что если ничего не помогает читайте хэлп (msdn)
ток времени бы побольше


Эх (позевывая)... Да что там читать - один раз наизусть заучил, вот и все :lol:

Ставишь в References галочку напротив Microsoft OLE DB Service Component 1.0 Type Library и выполняешь следующий код:

Код: Выделить всё
    Dim cn As New ADODB.Connection
    Dim dl As New MSDASC.DataLinks
    cn.CursorLocation = adUseClient
    cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False"
    If dl.PromptEdit(cn) Then
        cn.Open
        MsgBox cn.ConnectionString, vbInformation, "Вах, открыли базу!"
    Else
        MsgBox "Вы ничего не выбрали"
    End If


Тебе случаем не это нужно?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 18.10.2005 (Вт) 16:39

ага
типа того, ток я хатю сам найтить все серваки, ввести юзверя и паролъ, дык еще и получить список баз из выбранного сервака
:roll:

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.10.2005 (Вт) 16:47

Sandr0 писал(а):ага
типа того, ток я хатю сам найтить все серваки, ввести юзверя и паролъ, дык еще и получить список баз из выбранного сервака
:roll:


То бишь сделать свою подобную форму (она вообще-то позволяет все вышенаписанное проделать)?

Ну, если не пугает код на VB.NET, то можешь глянуть здесь:

http://contest2005.gotdotnet.ru/Request/Tools/DevTools/Downloads_GetFile.aspx?id=160916

и конвертнуть код форм frmSelConnection и frmEditConn в VB6 :lol:
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Sandr0
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 65
Зарегистрирован: 17.11.2004 (Ср) 16:26
Откуда: Rostov-on-Don

Сообщение Sandr0 » 19.10.2005 (Ср) 8:40

вот-вот! сию чудову игрышку треба...
а точка нет действительно пока пугает...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 132

    TopList