powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Имя SQL Server
12 сообщений из 12, страница 1 из 1
Имя SQL Server
    #33441019
Tommy1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ли из программы VB получить имя SQL Server?
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441056
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если конекшен уже установлен, то можно выполнить запрос

Код: plaintext
rs = cn.execute("SELECT @@SERVERNAME")

или можно попробовать выдернуть из строки подключения
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441098
Tommy1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что мне нужно знать имя сервера заранее, для подключения. Может есть какая-нибудь системная функция, возвращающая его?
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441125
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как вы собираетесь подключаться сами не зная к чему?
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441163
Tommy1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа будет установлена в несколько организаций, я не знаю, какие там имена SQL сервера, поэтому мне нужно отследить это программно.
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441201
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот так можно, но в многодоменной системе будет тормозить.
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441209
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще, если есть именнованные инстансы , то они не отображаются, будет только имя (доменное) самого сервера
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441265
Tommy1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, в чем можно открыть разархивированный файл?
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441295
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так я получаю список вместе с инстансами.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
Option Explicit

Private Const SQL_HANDLE_DBC As Integer =  2 
Private Const SQL_SUCCESS As Integer =  0 
Private Const SQL_SUCCESS_WITH_INFO As Integer =  1 

Private Declare Function SQLAllocEnv Lib "odbc32.dll" (ByRef phenv As Long) As Integer
Private Declare Function SQLAllocHandle Lib "odbc32.dll" (ByVal hType As Integer, ByVal hInput As Long, ByRef phOutput As Long) As Integer
Private Declare Function SQLBrowseConnect Lib "odbc32.dll" (ByVal hDbc As Long, ByVal szConnStrIn As String, ByVal cbConnStrIn As Integer, ByVal szConnStrOut As String, ByVal cbConnStrOutMax As Integer, ByRef pcbconnstrout As Integer) As Integer
Private Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal hDbc As Long) As Integer
Private Declare Function SQLFreeConnect Lib "odbc32.dll" (ByVal hDbc As Long) As Integer
Private Declare Function SQLFreeEnv Lib "odbc32.dll" (ByVal hEnv As Long) As Integer

Public Function GetSQLServersList() As String
  Const ODBC_ERR_MSG = "Ошибка при вызове ODBC. Пожалуйста, установите последнюю версию MDAC"

  Dim retCode As Integer
  Dim hDbc As Long
  Dim hEnv As Long
  Dim strCon As String
  Dim strOutCon As String
  Dim intConLenOut As Integer
  Dim lngPz1 As Long
  Dim lngPz2 As Long
  
  strCon = "DRIVER={SQL Server};"
  strOutCon = Space$( 10000 )
  retCode = SQLAllocEnv(hEnv)
  If retCode <> SQL_SUCCESS And retCode <> SQL_SUCCESS_WITH_INFO Then
     MsgBox ODBC_ERR_MSG
     Exit Function
  End If
  retCode = SQLAllocHandle(SQL_HANDLE_DBC, hEnv, hDbc)
  If retCode <> SQL_SUCCESS And retCode <> SQL_SUCCESS_WITH_INFO Then
     MsgBox ODBC_ERR_MSG
     Exit Function
  End If
  retCode = SQLBrowseConnect(hDbc, strCon, Len(strCon), strOutCon, Len(strOutCon) +  2 , intConLenOut)
  strOutCon = Left$(strOutCon, intConLenOut)
  lngPz1 = InStr(strOutCon, "Server={")
  If lngPz1 >  0  Then
     lngPz1 = lngPz1 +  8 
     lngPz2 = InStr(strOutCon, "}")
     If lngPz2 > lngPz1 Then
        GetSQLServersList = Mid$(strOutCon, lngPz1, lngPz2 - lngPz1)
     End If
  End If
  retCode = SQLDisconnect(hDbc)
  retCode = SQLFreeConnect(hDbc)
  retCode = SQLFreeEnv(hEnv)
End Function

...
Рейтинг: 0 / 0
Имя SQL Server
    #33441310
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как это в чем? в васике, конечно!
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441318
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Melkiades
точно, как я про ODBC забыл :)
...
Рейтинг: 0 / 0
Имя SQL Server
    #33441755
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используйте стандартное окно подключения к данным

Код: plaintext
1.
2.
    Dim oDataLink As New MSDASC.DataLinks
    oDataLink.PromptEdit cn
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Имя SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]