• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

различия между Function и Static Function

  • Автор темы Реник
  • Дата начала
Р

Реник

Добрый день.

Наткнулся вот на такую неприятность.

В библиотеке есть функция get_doc, возвращающая NotesDocument

В коде я пишу:

Dim fl_doc as Notesdocument

Set fl_doc=get_doc

Если при инициализации функции написано: Function get_doc , или Public Function get_doc , то get_doc возвращает значение, однако fl_doc=Nothing

Если же написано Static Function get_doc ,то fl_doc получает корректные значения?

Никто не может подсказать почему так происходит?
 
O

oshmianski

как получается документ в функции?

возможно "родитель" этого документа создается и удаляется в этой функции.
 
Р

Реник

function get_doc as notesdocument
'''''

Set tmp_doc=flow_view.GetDocumentByKey(flow_srch_key,True)
Set get_workflow_doc=get_doc


end function

tmp_doc - не пустой
 
N

nvyush

Реник
Статические функции сохраняют значения локальных переменных между вызовами, при выходе из нестатических функций локальные переменные утилизируются.
Вы пытаетесь получить документ из локальной переменной представления, скорее всего выше по коду локальная переменная БД.
Я обычно передаю БД в функцию в качестве параметра - работает железно.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
скорее всего инициализация базы происходит тожк внутри функции и эта переменная не глобальная, как только функция завершается указатель базы разрушается, а значит и указатель дока тоже, обьявите базу глобально и всё будет работать
 
Р

Реник

после того,как в йункцию стал передавать flow_view всё заработало и без static/
 
Мы в соцсетях:

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