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

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

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

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

Удаление записей

  • Автор темы pokerkmx
  • Дата начала
P

pokerkmx

Хочу удалить ненужные записи из карточек пользователя. После выполнения проверяю - свойство count полей MajVer, MinVer, QMRVer, QMUVer, HotVer, FixPVer, FlagsVer, ClntDgst остаётся прежним. В чём может быть причина? Спасибо.

Java:
import java.util.Date;
import java.util.Vector;
import lotus.domino.*;
 
public class JavaAgent extends AgentBase{
private String[] fields={"ClntBld","ClntDate","ClntDgst","ClntMachine","ClntPltfrm","FixPVer","FlagsVer","HotVer","MajVer","MinVer","QMRVer","QMUVer"};
 
	public void NotesMain(){
	 try
	 {
	 Session session = getSession();
	 Database db=session.getDatabase("nameserver", "names.nsf");
	 DocumentCollection dc=db.search("Type=\"Person\" & LocalAdmin=\""+session.getUserName()+"\"");
	 Document tmpdoc;
	 Document doc = dc.getFirstDocument();
	 while (doc != null)
	 {
	 if (doc.getItemValue("ClntMachine").size()>1) WorkWithDocument(doc);
			 tmpdoc = dc.getNextDocument();
			 doc.recycle();
			 doc = tmpdoc;
	 }
	 session.recycle();
	 }
	 catch(Exception e){e.printStackTrace();}
	}
	
	private void WorkWithDocument(Document doc) throws NotesException
	{
	 Vector times = doc.getItemValueDateTimeArray("ClntDate");
	 Date max = getJavaDate(times.elementAt(0));
	 int max_ind=0;
	 for (int j=1; j<times.size(); j++)
	 {
	 Date time=getJavaDate(times.elementAt(j));
	 if (time.compareTo(max)>0) {max=time;max_ind=j;}
	 }
	 for (int i=0;i<fields.length;i++)
	 doc.replaceItemValue(fields[i], doc.getItemValue(fields[i]).elementAt(max_ind));
	 doc.save();
	}
	
	private Date getJavaDate(Object o) throws NotesException{return ((DateTime)o).toJavaDate();}
}
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
а где тут удаление полей?
Я тут вижу только замену всех элементов поля на значение последнего элемента этого же поля.

Ну и просто интересно... а что это за цикл?
Java:
for (int j=1; j<times.size(); j++)
{
Date time=getJavaDate(times.elementAt(j));
if (time.compareTo(max)>0) {max=time;max_ind=j;}
}
 
Последнее редактирование модератором:
P

pokerkmx

а где тут удаление полей?
Я тут вижу только замену всех элементов поля на значение последнего элемента этого же поля.

Ну и просто интересно... а что это за цикл?
Java:
for (int j=1; j<times.size(); j++)
{
Date time=getJavaDate(times.elementAt(j));
if (time.compareTo(max)>0) {max=time;max_ind=j;}
}

Хочу оставить в карточке пользователя только информацию о последнем ПК. Нахожу позднюю дату, в остальных полях оставляю значения с этим же индексом, остальное удаляю.
 
P

pokerkmx

На локальной копии работает, на сервере - нет.
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
изменяй через временную переменную.
На сервере в консоли ошибки есть?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
а что подвигло итератор через индекс писать? индекс имен полей же вам не нужн
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
да и похорошему - надоб все в link removed маньячить, а не в консоль, напрямую
а уж логер потом настраивать
 
Последнее редактирование модератором:
  • Нравится
Реакции: pokerkmx

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
типа того
 
Мы в соцсетях:

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