Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Browse Folders машины SQL-сервера / 3 сообщений из 3, страница 1 из 1
21.12.2001, 14:21
    #32019581
Yuri
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Browse Folders машины SQL-сервера
Можно программно как-то вызвать диалоговое окно "Locate Database file", которое появляется в Enterprise Manager'е в диалоговом окне создания новой базы данных при нажатии кнопки "..." после полного имени файла новой базы данных (закладка "Data files", столбец "Location")?
...
Рейтинг: 0 / 0
22.12.2001, 15:03
    #32019609
SergeyA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Browse Folders машины SQL-сервера
Вообще-то это вопрос не по 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
24.12.2001, 08:18
    #32019650
Yuri
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Browse Folders машины SQL-сервера
В том-то и дело, что вопрос именно по MS SQL. Про существование функции SHBrowseForFolder я знаю. Но если Вы пользовались аналогом этого диалогового окна в MS SQL Enterprise Manager, то, наверное, заметили, что оно есть не результат вызова этой функции: Ent. manager дает выбирать папки НА ТОМ КОМПЬЮТЕРЕ, ГДЕ УСТАНОВЛЕН САМ SQL СЕРВЕР, тогда как SHBrowseForFolder отображает файловую структуру локального компьютера.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Browse Folders машины SQL-сервера / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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