Очистка базы

  • Автор темы Idea
  • Дата начала
Статус
Закрыто для дальнейших ответов.
I

Idea

#1
Доброго времени суток всем! Что-то на меня нашел ступор. Нужно очистить базу данных - удалить все-все-все документы. Я - менеджер базы. Написала кнопочку:
Код:
Sub Click(Source As Button)

Dim ws As New NotesUIWorkspace
Dim sh As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim piu As String
Dim ppiu As Variant
Dim tmpdoc As NotesDocument
Dim tmpcol As NotesDocumentCollection
Dim selection As String

selection = "@All"

Set db = sh.CurrentDatabase 

Set tmpcol = db.Search(selection, Nothing, 0)

Set tmpdoc = tmpcol.GetFirstDocument
Do Until tmpdoc Is Nothing
Set doc = tmpdoc
Set tmpdoc = tmpcol.GetFirstDocument
doc.Remove(True)
ws.ViewRefresh
Loop

End Sub
Говорит, что коллекция пустая.
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
Для: Idea
1. @All - не работает в сёрче

Use @All in selection formulas, mail agents, paste agents, scheduled agents, or in any formula requiring a SELECT statement. Lotus Notes/Domino appends SELECT @All to agents in contexts where @All is needed. All views default to a selection formula of SELECT @All

2. Зделайте на кнопе запуск собачного агента. у него в свойстах віберите ВСЕ документы и на собаках удлаить документ )))

3. Зделайте на кнопе запуск собачного агента. у него в свойстах віберите ВСЕ документы ( @All) и через UnprocessedDocuments пройтись повсем документам и удалить их в скриптах
 
S

Sandr

#3
если использовать то, что написали Вы, то нужно немного поправить...

Код:
Set tmpdoc = tmpcol.GetFirstDocument
while not tmpdoc is Nothing
Set doc = tmpdoc
Set tmpdoc = tmpcol.GetNextDocument(tmpdoc)
doc.Remove(True)
Wend

А вообще пишите в агенте такое

@DeleteDocument
SELECT @All


turget агенту указываете все документы в базе...

/MODERARTOR/ А ну ка пользуемся тегами кода, а то по сопатке :)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#6
а если реплика не важна, то и вовсе New Copy...

а если хотим LotusScript юзать, то

Set notesDocumentCollection = notesDatabase.AllDocuments
Call notesDocumentCollection.RemoveAll( force )
 
I

Idea

#7
Да, действительно, совсем забыла про Таргеты агентов. На собаках - то, что надо. Всем спасибо, всем по плюсу)
 
I

Idea

#8
Нашелся косячок - кнопка удаляет только те документы, в которые я могу читать, а те, что висели у других пользователей, похоже так и висят. может вся фишка в том, что я не фул админ?
 
S

Sandr

#9
Вы же агент от своего имени запускаете? Запускайте его на сервере...
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#10
Вы же агент от своего имени запускаете? Запускайте его на сервере...
запускать нужно от имени пользователя, что имеет доступ чтение всех документов и на удаление...
не обязательно на сервере... тем более, сервер не обязательно видит все доки...
если Вы именно таким запускаете, то проверьте какие докты отбираются агентом, возможно только выбранные... а не все в БД...
 
I
#11
запускать нужно от имени пользователя, что имеет доступ чтение всех документов и на удаление...
эм... а это пользователь типа по умолчанию должен прописываться в поля читателей? или достаточно быть менеджером базы?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#12
эм... а это пользователь типа по умолчанию должен прописываться в поля читателей? или достаточно быть менеджером базы?
учим Авторс, Ридерс поля :(

поля типа Ридерс ограничивают доступ на чтение к документу независимо от уровня доступа в ТУД (АЦЛ), короче говоря, если в док-те есть Ридерс-поле, а в нем не перечислен пользователь, то он не увидит док, даже если будет Менеджером...

всегда нужно создавать роли, и их содержащие поля типа автор, для получения доступа к доку в критической ситуации... имхо ;)

ЗЫ: а вот поля типа Авторс, ограничивают доступ на редактирование лишь до уровня ТУД - Автор, т.е. Редактор (Эдитор) будет иметь доступ на редактирование, если будет перечислен хотя бы в Ридерс-поле...

зы2: надеюсь, что я не ошибся ни в чем :)
 
D

D!m@n

#13
Включите в клиенте Domino Administrator режим Full Access Administrator и запустите своего агента.
Тогда гарантированно удалите все доки.
 
D

D!m@n

#15
Ну хорошо, значит если не получится, зайти на сервере локально с клиента в names.nsf, отредактировать документ Server, потом вернуться на свое рабочее место и включить режим Full Access...
 
S

Sandr

#16
Ну хорошо, значит если не получится, зайти на сервере локально с клиента в names.nsf, отредактировать документ Server, потом вернуться на свое рабочее место и включить режим Full Access...
Далеко не всегда разработчикам дается такая возможность... И чем лучше поставлена безопасность в компании, тем меньше шансов того, что разработчик может достучаться до административной части сервера... :(
 

morpheus

скриптописец
07.08.2006
3 915
1
#17
<!--QuoteBegin-Sandr+20:12:2007, 22:36 -->
<span class="vbquote">(Sandr @ 20:12:2007, 22:36 )</span><!--QuoteEBegin-->достучаться до административной части сервера
[snapback]90800" rel="nofollow" target="_blank[/snapback]​
[/quote]
и тем собственно лучше всего будет ... изменения под FA делать надо осоторожно...
 
S

Sandr

#18
Создайте реплику или копию базы и не мучайтесь, а старую грохните... дело миннуты...

Ну хорошо, значит если не получится, зайти на сервере локально с клиента в names.nsf, отредактировать документ Server, потом вернуться на свое рабочее место и включить режим Full Access...
Кстати, а я вот не понял, в чем разница между зайти со своей машины и локально, где сервер? Или вы из консоля будет менять names.nsf ?
 
D

D!m@n

#19
Да почему, можно и со своей машины с серверным id-шником...

Хотя на месте автора темы я попробовал бы для начала дать себе помимо менеджерского доступа все роли в базе :( Если она была сдизайнена не криво, то скорее всего фулл-аксесс после этого и не понадобится...
 
I
#20
Хотя на месте автора темы я попробовал бы для начала дать себе помимо менеджерского доступа все роли в базе ;) Если она была сдизайнена не криво, то скорее всего фулл-аксесс после этого и не понадобится...
Хехе) Всё вы правильно пишете) И роли пробовала, а вот с ридерсами накосячила, умнее буду) База я думаю сдизайнена достаточно криво, ибо опять в авральном порядке ("утром деньги, вечером стулья").
А фулл-аксесс мне действительно не положен (хоть в чем-то по уму сделали) ;)
В общем кое-как удалили всё лишнее, попробуем теперь по уму сделать. Спасибо за советы
 
Статус
Закрыто для дальнейших ответов.