Как такое может быть?!

  • Автор темы fedotxxl
  • Дата начала
F

fedotxxl

Прошу прощения за название темы, но подругому никак... Вот такой простой код
Код:
Dim ns As New NotesSession
Dim db As NotesDatabase

Dim ndTemp As NotesDocument
Dim nv As NotesView

Set db = ns.CurrentDatabase 
Set ndTemp = db.CreateDocument

Call ndTemp.Save(True, True)

Set nv = db.GetView("(UNID)")
Call nv.Refresh
nv.AutoUpdate = False

Set ndTemp = nv.GetDocumentByKey(ndTemp.UniversalD, True)
Вид отбирает все документы, первый столбец сортирован, код столбца @Text(@DocumentUniqueID). Метод nv.GetDocumentByKey(ndTemp.UniversalD, True) возвращает nothing... ПОЧЕМУ?!
 
F

fedotxxl

D!m@n
Галка не стоит
Во-вторых в хелпе написано - If the force parameter is True, the createResponse parameter has no effect.
 
A

allex

Такая же проблема, дебагеом смотрю

Dim col As NotesDocumentCollection
Set view = db.GetView( "view" )
Set col = view.GetAllDocumentsByKey(name_field_curdoc, True)
name_field_curdoc - string величина, и она определена
во view первый столбец показывает значения, с данным ключем во view есть 3 док-та

Но коллекция пустая

????
 
D

D!m@n

D!m@n
Галка не стоит
Во-вторых в хелпе написано - If the force parameter is True, the createResponse parameter has no effect.
Хм, да... Встречный вопрос - зачем тогда второй аргумент в True выставили? :ph34r:
Кстати, а Вы вручную не проверяли - создаваемые документы во вьюхе есть?
 
K

K-Fire

Прошу прощения за название темы, но подругому никак... Вот такой простой код
Код:
Dim ns As New NotesSession
Dim db As NotesDatabase

Dim ndTemp As NotesDocument
Dim nv As NotesView

Set db = ns.CurrentDatabase 
Set ndTemp = db.CreateDocument

Call ndTemp.Save(True, True)

Set nv = db.GetView("(UNID)")
Call nv.Refresh
nv.AutoUpdate = False

Set ndTemp = nv.GetDocumentByKey(ndTemp.UniversalD, True)
Вид отбирает все документы, первый столбец сортирован, код столбца @Text(@DocumentUniqueID). Метод nv.GetDocumentByKey(ndTemp.UniversalD, True) возвращает nothing... ПОЧЕМУ?!

Попробуйте немного модифицировать код, а именно после Call ndTemp.Save(True, True):
Dim unid as String
unid = ndTemp.UniversalID
Set ndTemp = Nothing

и в конце уже Set ndTemp = nv.GetDocumentByKey(unid)

Кстати, еще вариант попробуйте nv.GetDocumentByKey(ndTemp.UniversalD, True) заменить на nv.GetDocumentByKey(ndTemp.UniversalD)
 
F

fedotxxl

D!m@n
Что-то туда вставить нужно было

K-Fire
Если nv.GetDocumentByKey(ndTemp.UniversalD), то находился вообще какой-то бредовый документ

Вобщем взял из другой базы данных такое же по смыслу представление и проблема решилась...
 
Мы в соцсетях:

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