Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
122 / 122 / 12
Регистрация: 12.06.2010
Сообщений: 499
Записей в блоге: 2
1

GetDocumentByKey не получает документ из БД Lotus Notes

06.02.2017, 12:01. Показов 1135. Ответов 0

Author24 — интернет-сервис помощи студентам

Не по теме:

Заранее прошу прощения, если написал не в той ветке, но вопрос этот больше подходит для темы C#, чем для Lotus Notes, да и лотусовый форум, по-моему умер...


Не думал, что такая на первый взгляд простая задача, поставит меня в тупик.
В чем суть: имеется уже вполне рабочая программа, для получения информации о пользователе (LotusNames, Mail file, Server Name) в DominoDirectory по его почте. И тут потребовалось получить информацию из другого View в другой БД. Почему-то практически, тот же самый код не работает. Скажу честно: мне до сих пор до конца не понятна логика работы лотусовых БД и что еще грустнее литература по данной теме как будто вообще не издается. На сколько я понял, информация в БД может быть представлена в виде View, я так понял это аналог Запроса в MS Access. В самом же View находятся не строки с записями, а NotesDocument. Со своими параметрами, которые мы уже можем получить. В обычных БД я мог написать запрос вида "SELECT FROM table_name name, suranme, sex, address WHERE ID=id_value", но как это сделать для документа в Domino?
Проект писался на C# с Lotus API
Рабочий код получения инфы из адресной книги

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public void GetInfo(string _mail)
        {
            NotesSession _session = new NotesSession();
            
            _session.Initialize(); //Логинюсь с текущими данными лотуса, хз как работает если лотус не запущен (скорее всего никак :D UPD: работает, чистая магия мать ее... )
            
            NotesDatabase db = _session.GetDatabase("IP_address_here", "names.nsf", false);
            
            NotesView  ContactView = db.GetView("$Users");
            
            NotesDocument _doc = ContactView.GetDocumentByKey(_mail,true);          
            
            string _servername=(string)((object[])_doc.GetItemValue("MailServer"))[0];
        
            _mailServer =_servername.Replace("CN=","").Replace("/O=","/");
            
            _mailFile= (string)((object[])_doc.GetItemValue("MailFile"))[0];
            
            string[] _stringdata=Array.ConvertAll<object, string>(((object[])_doc.GetItemValue("FullName")), o => o.ToString());
            
            _usernames =_stringdata.Select(s => s.Replace("CN=", "").Replace("/O=","/").Replace("/OU=","/")).ToArray();
            
            
        }


Добавлено через 12 минут
А вот этот код не работает, хотя БД и View, точно есть доступ имеется и все собственно отлично до строчки
C#
1
NotesDocument _doc = AnotherView.GetDocumentByKey("KEY_FOR_SEARCH",true);
при выполнении которой, находится не один документ соответствующий заданному критерию, а все записи в этом View, а это 23к записей (!)

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void GetAnotherInfo(string _value_in_column)
        {
            NotesSession _session = new NotesSession();
            
            _session.Initialize(); 
            
            NotesDatabase db_people = _session.GetDatabase("another_ip_here, "people_u.nsf", false);
            
            NotesView  AnotherView = db_people.GetView("another_view_name");        
            
            AnotherView.AutoUpdate=false;
            
            NotesDocument _doc = AnotherView.GetDocumentByKey("KEY_FOR_SEARCH",true);
            
            
            if (_doc!=null)
            {
                _magic_value=(string)((object[])_doc.GetItemValue(_value_in_column))[0];            
                        
            }       
            
            
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2017, 12:01
Ответы с готовыми решениями:

Открыть документ Lotus Notes в Excel
Возможно ли по гиперссылке (или другой вариант), которая хранится в книге в MS Excel, открыть...

Открыть Документ В Lotus Notes По Ссылке Из Броузера
Добрый день Мега-Админы! Посоветуйте плз. решение проблеммы. Пробую настроить возможность...

Открытие доступа к ящику lotus одного сотрудника для другого сотрудника средствами сервера lotus notes 8.5
Доброго времени суток! Как открыть доступ к ящику lotus одного сотрудника для другого сотрудника...

Lotus Notes
оставляйте свои коменты.....будем учиться на чужих ошибках если есть чем научить то ДОБРО...

0
06.02.2017, 12:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2017, 12:01
Помогаю со студенческими работами здесь

Lotus Notes
Здравствуйте, у меня вопрос такой: есть таблица, в неё вставлена подформа, можно ли как-нибудь...

Lotus Notes Traveler
Где можно скачать Lotus Notes Traveler?

Словари Lotus Notes
Привет всем! Столкнулся с такой нелепой проблемой в клиенте почтовом! Как поменять словарь по...

Lotus Notes Client
Доброго времени суток, друзья! в общем работаю с Электронным архивом документов, до нового года...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru