powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Browse Folders машины SQL-сервера
3 сообщений из 3, страница 1 из 1
Browse Folders машины SQL-сервера
    #32019581
Yuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно программно как-то вызвать диалоговое окно "Locate Database file", которое появляется в Enterprise Manager'е в диалоговом окне создания новой базы данных при нажатии кнопки "..." после полного имени файла новой базы данных (закладка "Data files", столбец "Location")?
...
Рейтинг: 0 / 0
Browse Folders машины SQL-сервера
    #32019609
SergeyA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще-то это вопрос не по MS SQL, на такие вопросы ответы лучше искать в других форумах...

Есть такая функция Win API - SHBrowseForFolder, которая показывает окно, подобное "Locate Database file"
На Visual Basic-е ее вызов будет выглядеть таким образом:

'Декларируем необходимые функции, структуры и константы
Public Declare Function SHBrowseForFolder Lib "shell32.dll" (lpBrowseInfo As BrowseInfo) As Long
Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Public Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long

Public Const BIF_RETURNONLYFSDIRS = 1
Public Const BIF_DONTGOBELOWDOMAIN = 2
Public Const BIF_BROWSEINCLUDEFILES = &H4000

Public Type BrowseInfo
hwndOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Integer
lpfn As Long
lParam As Long
iImage As Integer
End Type

'Функция показывает юзеру дерево каталогов/файлов и возвращает путь к выбранному файлу
Public Function GetFilePath() as String
Dim tBrowseInfo As BrowseInfo
Dim szTitle As String
Dim lpIDList As Long
Dim sPath As String

szTitle = "Locate Database file" ' Заголовок окна
With tBrowseInfo
.hwndOwner = Me.hWnd
.lpszTitle = lstrcat(szTitle, "")
.ulFlags = BIF_BROWSEINCLUDEFILES 'Если необходимо выбрать только каталог, то используем константу BIF_RETURNONLYFSDIRS
End With

lpIDList = SHBrowseForFolder(tBrowseInfo)

If (lpIDList) Then
sBuffer = Space(MAX_PATH)
SHGetPathFromIDList lpIDList, sBuffer
GetFilePath = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
End If

End Sub
...
Рейтинг: 0 / 0
Browse Folders машины SQL-сервера
    #32019650
Yuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В том-то и дело, что вопрос именно по MS SQL. Про существование функции SHBrowseForFolder я знаю. Но если Вы пользовались аналогом этого диалогового окна в MS SQL Enterprise Manager, то, наверное, заметили, что оно есть не результат вызова этой функции: Ent. manager дает выбирать папки НА ТОМ КОМПЬЮТЕРЕ, ГДЕ УСТАНОВЛЕН САМ SQL СЕРВЕР, тогда как SHBrowseForFolder отображает файловую структуру локального компьютера.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Browse Folders машины SQL-сервера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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