• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Db.open

  • Автор темы wowa
  • Дата начала
W

wowa

Call db.Open(stDBServer,stDBFileName )
If db.IsOpen=True Then
...
...
...
End if

подскажите, пожалуйста следующее
1) Когда я Открываю свою БД и др. БД , к которым мне разрешен доступ, то все работает нормально
2) Когда я открываю БД, которая находится на другом локальном компе, то все работает нормально, оно просто не заходит в if
3) Но когда я пытаюсь открыть БД, к которой я не имею права доступа, то на строке Call db1.Open(stDBServer,stDBFileName ) выскакивает ошибка, типа "у меня нет прав..". И прерывается выполнение кода... Подскажите, как можно выкрутится с этой ситуации, чтобы оно отработало от начала до конца
 
W

wowa

КАк? Открыть я БД не могу, как можно узнать какой level = db1.CurrentAccessLevel ??
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: wowa
Ага. :)
Добавь обработчик ошибок.
 
W

wowa

<!--QuoteBegin-Medevic+13:04:2007, 14:36 -->
<span class="vbquote">(Medevic @ 13:04:2007, 14:36 )</span><!--QuoteEBegin-->Добавь обработчик ошибок.
[snapback]62365" rel="nofollow" target="_blank[/snapback]​
[/quote]
Я новенький в этих делах, поэтому еще не знаю что это такое :)
 
K

Kee_Keekkenen

Код:
function aaa
dim переменные

try:
on error goto catch

код 

exit function
catch:
msgbox cstr(err) + " " + error + " " + cstr(erl)
exit function
end function
 
W

wowa

Для: Kee_Keekkenen
Большое Спасибо, а то я не разобрался бы с on error !!
 
A

AvasKvas

У меня вопрос похоржий, но проблемка немного иначе!
Я в промт вывожу список всех баз на сервере! Но так как не ко все базам имею доступ, то хочу сделать фильтр,который "недоступные" базы бы отсекал! Вообщем,все это делается в цикле! Проверяю CurrentAccessLevel! Ловлю ошибку!
Первая ошибка ловится нормально, а вот на другой базе, уже не ловится и выполнение останавливается!
Как можно ловить ошибки во время выполнения всего цикла!


Вот часть кода, где ошибка вылезает:

On Error Goto errorHandler
While Not (db Is Nothing) 'названия
Call db.Open(server, db.FileName)
inte = db.CurrentAccessLevel
If inte > 1 Then
Redim Preserve x(i)
x(i) = db.Title
i = i+1
End If
errorHandler:
Set db = DbD.GetNextDatabase
Wend
ch = workspace.Prompt(PROMPT_OKCANCELLIST,"Доступные базы данных","Выберите базу данных,в которую необходимо поместить документ!","",x )
 
O

Omh

Код:
On Error Goto errorHandler

Set db = DbD.GetFirstDatabase
While Not (db Is Nothing) 'названия
inte = 0

On Error Resume Next
Call db.Open(server, db.FileName)
inte = db.CurrentAccessLevel
On Error Goto errorHandler

If inte > 1 Then
Redim Preserve x(i)
x(i) = db.Title
i = i+1
End If

Set db = DbD.GetNextDatabase

errorHandler:
'тра-ля-ля
 
A

Akupaka

Попробуй использовать QueryAccess
а этот метод не требует открытой БД?..

AvasKvas , во-первых, для кода на форуме следует истпользовать оформление, а во вторых...
у тебя код вываливается по ошибке или как происходит выполнение при возникновении ошибки?..

попробуй несколько иначе обрабатывать открытие БД

Код:
	on error resume next
While Not (db Is Nothing) 'названия
Call db.Open(server, db.FileName)
if db.IsOpen() then
inte = db.CurrentAccessLevel
If inte > 1 Then
Redim Preserve x(i)
x(i) = db.Title
i = i+1
End If
end if
Set db = DbD.GetNextDatabase
Wend
on error goto 0 ' ну или другой обработчик

ch = workspace.Prompt(PROMPT_OKCANCELLIST,"Доступные базы данных","Выберите базу данных,в которую необходимо поместить документ!","",x )
 
A

AvasKvas

Omh
Огромное спасибо!Работает!Что то я не дотумкал!
 
O

Omh

AvasKvas
Просто код надо аккуратней писать.
И усё.
 
A

Akupaka

Omh, интересно... ты сам покраснел, когда писал? ;)
 
H

hosm

Цитата(Akupaka @ 4:06:2009, 15:28 )
а этот метод не требует открытой БД?..

Вроде бы нет. В отличие от CurrentAccessLevel.
Medevic, "вроде" не катит...
дошли руки QueryAccess проверить.
На 7-ке работает, как описано в хелпе - требует открытия db (если она получена из NotesDbDirectory).
Может, у вас "умная и продвинутая" 8-ка? ;)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!