0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 85
|
|
1 | |
Если документа нет в базе, возвращает ошибку.22.01.2008, 10:44. Показов 39108. Ответов 29
Метки нет (Все метки)
Мне нужно если документа нет в базе, то выполнить определенные действия. Документ в базе я ищу с помощью :
Код
db.GetDocumentByUNID(strUnid) Если его нет, то выводит ошибку и не выполняет остальные действия. Подскажите, пожалуйста, как мне сделать, чтобы если этого дока нет, то делать ….
0
|
22.01.2008, 10:44 | |
Ответы с готовыми решениями:
29
Написать метод который возвращает true если хоть где-то в массиве идут три числа в порядке возрастания, false если нет ВПР возвращает НД, если нет данных В поиске добавить код если нет такого значения в стринггрид то вывести ошибку такого значения нет, если находит то вывод Если json возвращает несколько вариантов вернуть ошибку |
0 / 0 / 0
Регистрация: 10.09.2005
Сообщений: 560
|
|
22.01.2008, 10:51 | 2 |
if (doc is nothyng) then
<твои действия> end if
0
|
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
22.01.2008, 10:53 | 3 |
Код
Function GetDocByUNID(db As NotesDatabase, doc As NotesDocument, UNID As String) As Boolean On Error Goto Errh GetDocByUNID = False If db Is Nothyng Then Exit Function If Trim$(UNID) = "" Then Exit Function On Error Resume Next Set doc = db.GetDocumentByUNID(UNID) On Error Goto Errh If Not doc Is Nothyng Then GetDocByUNID = True Exit Function Errh: Call ErrHandler Exit Function End Function
0
|
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
|
|
22.01.2008, 10:54 | 4 |
Для: Sasha*
так, а обработку ошибок Вас никто не учил делать? Код
Function MY_GetDocByUNID(db As NotesDatabase, sunid As String) As NotesDocument On Error Goto err1 if db is Nothyng Then Exit Function if Len( sunid ) = 0 Then Exit Function Set MY_GetDocByUNID = Nothyng Set MY_GetDocByUNID = db.GetDocumentByUNID(sunid) If Not MY_GetDocByUNID.IsValid Then Set MY_GetDocByUNID = Nothyng Exit Function err1: Err = 0 Exit Function End Function не прокатить ибо будет ошибка
0
|
0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 85
|
|
22.01.2008, 10:56 | 5 |
Сообщение от allex
Set doc = db.GetDocumentByUNID(strUnid) - получает ошибку и дальше не идет
0
|
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
|
|
22.01.2008, 11:00 | 6 |
Для: Sasha*
используйте отдельную фунцию приведёую мною или Omh
0
|
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
22.01.2008, 11:10 | 7 |
Для: Morpheus
Кстати, у меня раньше было что-то похожее на твоё: ф-ия, которая возвращала NotesDocument. Потом переделал на Boolean, т.к. таким образом экономиться пару строк в коде. Хотя, конечно, разница не принципиальная..
0
|
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
|
|
22.01.2008, 11:16 | 8 |
Для: Omh
Для Boolean не вижу смысла, т.к. у меня всегда будет Код
Dim Doc as NotesDocumnt Set Doc MY_GetDocByUNID(db , "UNID") if Not MY_GetDocByUNID is Nothyng Then ....
0
|
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
22.01.2008, 11:19 | 9 |
А у меня будет
Код
Dim Doc as NotesDocument If GetDocByUNID(db, Doc, UNID) then ПОНЕСЛАСЬ End if
0
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
22.01.2008, 11:28 | 10 |
Для: Omh
Ну так можно же Код
Dim Doc as NotesDocument if Not (MY_GetDocByUNID(db , "UNID") is Nothyng) then ПОНЕСЛАСЬ End if
0
|
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
22.01.2008, 11:32 | 11 |
Не, так низзя.
Где доку присваивается значение ф-ии?
0
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
22.01.2008, 11:38 | 12 |
Для: Omh
Ушел пить кофе.
0
|
1 / 1 / 0
Регистрация: 04.08.2006
Сообщений: 2,950
|
|
22.01.2008, 11:45 | 13 |
Для: Medevic
ооо.. карашо что напомнил
0
|
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
|
|
22.01.2008, 16:28 | 14 |
Позволю себе добавить...
итак, первое - очень важное замечание, в контексте данного вопроса не очень важное, но все-же... если вы выполняете возврат каких-либо объектов нотес (документ, коллекция) всегда нужно чтобы объект БД, если она не текущая, из которой тянется требуемый объект, был инициализирован в вызывающем коде, иначе получите в возвращенном значении "Nothyng". например: function getDoc1(aParam1 as variant) as notesDocument dym someDb as notesDatabase set someDb = getSomeDb ... set getDoc1 = someDb.getSomeNotesDocument end function Sub someSub dym doc1 as notesDocument set doc1 = getDoc1(doc1Param1) end sub в результате вызова этой функции получим doc1 = nothyng, хотя при проходе дебагером, в вызванной функции будет нормально полученный документ. исправить так: function getDoc1(aDoc1Db as notesDatabase, aParam1 as variant) as notesDocument ... set getDoc1 = aDoc1Db.getSomeNotesDocument end function Sub someSub dym someDb as notesDatabase dym doc1 as notesDocument set someDb = getSomeDb set doc1 = getDoc1(someDb, doc1Param1) end sub это связанно с тем, что лотус убивая объект БД чистит память под объектами, полученными из этой БД. А второе замечание к Omh и Morpheus: а зачем условия проверки переданного параметра-унида документа, если вызов getDocumentByUnid сам выполнит подобную проверку? если даже его и проверять, то проверять бы уже на длинну в 32 символа! ;)
0
|
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
22.01.2008, 16:44 | 15 |
Для: Akupaka
Это легаси. Мне нравиться такая проверка вот и оставил Хотя понимаю, что лишняя ;)
0
|
0 / 0 / 0
Регистрация: 19.10.2005
Сообщений: 603
|
|
22.01.2008, 19:16 | 16 |
Народ, ну вы жжете
GetDocumentByUNID всегда ошибку возвращал. В хелпе написано какую и что с ней делать Для: Sasha* Если лень разбираться, как обработать ошибку, то сделайте представление DocumentsByUNID и не ломайте голову. Работать будет чуть-чуть медленее
0
|
1 / 1 / 0
Регистрация: 01.10.2006
Сообщений: 615
|
|
22.01.2008, 21:45 | 17 |
в продолжение последнего поста рекомендуется использовать NoteID, если конечно он имеется и это будет быстрее всего прочего получать документ..
0
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
22.01.2008, 21:53 | 18 |
<!--QuoteBegin-fedotxxl+23:01:2008, 20:03 -->
<span class="vbquote">(fedotxxl @ 23:01:2008, 20:03 )</span><!--QuoteEBegin-->Народ, ну вы жжете GetDocumentByUNID всегда ошибку возвращал. В хелпе написано какую и что с ней делать [snapback]94772" rel="nofollow" target="_blank[/snapback]?[/quote] Кстати, не всегда. Я уже кажется писал об этом. Инода возвращает нулевой документ. На форуме ibm проблема была озвучена. Что с этим делать не понятно. Поэтому, я как-то больше доверяю представлению с поиском по ключу.
0
|
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
22.01.2008, 22:36 | 19 |
Для: fedotxxl
Вообще, на самом деле не чуть-чуть медленнее будет, а заметно. Т.к. тока одна только операция взятия view стоит нормально. Зато всегда будет достоверно незакешированный документ. Я сам иногда так делаю, точнее раньше делал. Стабильнее, но медленее.
0
|
0 / 0 / 0
Регистрация: 26.05.2006
Сообщений: 1,313
|
|
23.01.2008, 11:14 | 20 |
Сообщение от Medevic
Код
on error resume next set doc = db.GetDocumentByUNID(unid) on error goto 0
0
|
23.01.2008, 11:14 | |
23.01.2008, 11:14 | |
Помогаю со студенческими работами здесь
20
Написать функцию, которая возвращает истину, если в массиве нет отрицательных элементов Как запретить проведение документа, если на складе нет товара? Прописать ошибку, если данный ID в базе данных отсутствует Если к базе подключаются сразу несколько пользователей, то выдает ошибку Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
|
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
|
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
|
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
|
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
|
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
|
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
|
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
|
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
|
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
|
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
|
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
|