Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Имя SQL Server / 12 сообщений из 12, страница 1 из 1
16.12.2005, 15:07:43
    #33441019
Tommy1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
Можно ли из программы VB получить имя SQL Server?
...
Рейтинг: 0 / 0
16.12.2005, 15:16:51
    #33441056
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
Если конекшен уже установлен, то можно выполнить запрос

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

или можно попробовать выдернуть из строки подключения
...
Рейтинг: 0 / 0
16.12.2005, 15:25:13
    #33441098
Tommy1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
Дело в том, что мне нужно знать имя сервера заранее, для подключения. Может есть какая-нибудь системная функция, возвращающая его?
...
Рейтинг: 0 / 0
16.12.2005, 15:31:20
    #33441125
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
А как вы собираетесь подключаться сами не зная к чему?
...
Рейтинг: 0 / 0
16.12.2005, 15:40:41
    #33441163
Tommy1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
Программа будет установлена в несколько организаций, я не знаю, какие там имена SQL сервера, поэтому мне нужно отследить это программно.
...
Рейтинг: 0 / 0
16.12.2005, 15:48:46
    #33441201
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
вот так можно, но в многодоменной системе будет тормозить.
...
Рейтинг: 0 / 0
16.12.2005, 15:50:09
    #33441209
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
и еще, если есть именнованные инстансы , то они не отображаются, будет только имя (доменное) самого сервера
...
Рейтинг: 0 / 0
16.12.2005, 16:07:34
    #33441265
Tommy1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
Спасибо, в чем можно открыть разархивированный файл?
...
Рейтинг: 0 / 0
16.12.2005, 16:15:22
    #33441295
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
Вот так я получаю список вместе с инстансами.

Код: 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
16.12.2005, 16:17:51
    #33441310
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
как это в чем? в васике, конечно!
...
Рейтинг: 0 / 0
16.12.2005, 16:19:19
    #33441318
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
2 Melkiades
точно, как я про ODBC забыл :)
...
Рейтинг: 0 / 0
16.12.2005, 18:38:37
    #33441755
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Имя SQL Server
используйте стандартное окно подключения к данным

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


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