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

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

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

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

Names.nsf Не Дает Работать

  • Автор темы beloff
  • Дата начала
B

beloff

Всем хай. Проблема с обращением к корпоративной директории (names.nsf). Оттуда нужно вытянуть из учетной карточки поле InternetAddress (для корпоративной подписи единообразной), проблема в том что программно база подключается, но работать с собой ни в какую не дает. Коллекции не ищет. Дебаг показывает, что база открыта, задаю поиск - коллекция даже не думает искаться, просто проскакивает этот пункт, переменная пустая. Обычно хоть count = 0 показывает, тут бы никаких проблем,понятно что дело не в бобине. Права стоят максимальные. Вобщем, Ай Нид Хэлп.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
Клиентский/серверный агент?
Если серверный в пределах одного работает?
Разрешения?
db.IsOpen показывает True? или только в дебагере это ?
 
B

beloff

вьюха получается, и ентри тоже получается но вот стремаюсь вьюху свою склепать чтобы нужное инфо получить (GetDocumentByKey) чтобы не положить всю базу, она ж одна на все сервера реплицируется

Добавлено: db.IsOpen показывает True, пока тестирую на клиенте (т.к. нужно потом в автоматический серверный режим перевести), открываю на том же сервере - тот же результат, т.е. никакой.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
Ну стрёмно или не стрёмно, а Search работать будет дольше, чем GetDocumentByKey.
Можно попробовать сделать ReBoot но думаю не вариант :)
Попробуй получить документ или Entry, а из нее уже потом документ или даже просто значение колонок...


Добавлено:
Оттуда нужно вытянуть из учетной карточки поле InternetAddress (для корпоративной подписи единообразной)
Для автоматической рассылки?
Просто я не уверен что можно при отправке письма вставлять подпись на каждого сотрудника автоматически при отправке из его ПЯ.
Да и кажись точно не возможно.
А если эта рассылка идет из какой-то базы, то проще сделать список отправителей с подписями в каждое письмо вставлять необходимый текст из справочника.
 
B

beloff

GetDocumentByKey все берет, док получен, осталось в шаблон подсунуть вьюху. Интересно, почему GetDocumentByKey работает а Search нет. Загадки во тьме
 
B

beloff

nie ma sprawy.

Set maildb = ses.GetDatabase("msqbw2/BWD","names.nsf") 'все подключается все нормально
strg = {Form = "Person" & @Contains(FullName;}+key+{)}
Set mcol = maildb.Search(strg,Nothing,1) ' тут коллекция пустая, не просто count=0 , а EMPTY

а если так
Set mview = maildb.GetView("main")
key = entry.ColumnValues(13)
Set mdoc = mview.GetDocumentByKey(key)
xlSheet.Cells(i,9).Value = mdoc.InternetAddress(0)

здесь все окай
 

Мыш

Lotus Team
12.02.2008
1 220
29
BIT
68
beloff, key надо в кавычки обернуть, как минимум.
 
B

beloff

думаю это без разницы, поисковая строка формировалась нормально
 

Мыш

Lotus Team
12.02.2008
1 220
29
BIT
68
Если key - строковая переменная, то 146% надо в кавычки...
Вообще, проверил у себя - все работает и находится...
 
B

beloff

точно, ищет. Значит сам мир. Позор на седины
 

Мыш

Lotus Team
12.02.2008
1 220
29
BIT
68
savl, вот с этим согласен - мне лично в исходном варианте выдавало type mismatch. Баг дебаггера... :)
 
B

beloff

отчего и затупил - строка поиска не ругалась на некорректность, коллекция пустая. Подумал мот засекреченая база
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
Мыш
Вопрос типизации, если key был строка, то ошибки не будет, если вариант, то возможна.
beloff
А вот это не мудрено, ошибку Db.Search выдаст только если не сможет сделать Evaluate от этой формулы.
Лучший способ проверки формулы для Search: вьюха (при возможности ее сделать), либо:
Код:
dim macro as variant
macro =Evaluate(sFormula,doc)
Где sFormula наш поисковый запрос, а doc документ попадающий под условия.
Если macro(0) = 1 все ок, формула рабочая, как минимум для одного документа.

Но использовать Search для поиска только одного документа, ну право не надо :)
Вьюха лучше)
 

Мыш

Lotus Team
12.02.2008
1 220
29
BIT
68
Мыш
Вопрос типизации, если key был строка, то ошибки не будет, если вариант, то возможна.
У меня (без кавычек и еще без явного объявления каких-то переменных, коллеции что ли) стабильно Mismatch вываливало, что с вариантом, что со строкой, чесслово. Ну фик знает...
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
Мыш
Забавно) значит мой клиент такой))
а у меня вот так:
---------------------------IBM Lotus Notes---------------------------
Notes error: Formula Error (Form = "Person" & @Contains(FullName;123))
---------------------------ОК ---------------------------
Release 8.5.3FP2|July 03, 2012
 

Мыш

Lotus Team
12.02.2008
1 220
29
BIT
68
savl, ну мы ж не абсолютно одинаковый код наверняка использовали. У меня, к слову, 8.5.3 FP5...
 
Мы в соцсетях:

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