Несоответствие типов в методе NotesDatabase.Search с использованием vb - PullRequest
2 голосов
/ 28 марта 2019

Мне нужно искать в базе данных заметок с набором заданных критериев, используя VB. Я просматривал документацию IBM на https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_EXAMPLES_SEARCH_METHOD.html
и придумал код ниже, как в примере №. 3 там:

    Dim notesSession As Object = CreateObject("lotus.NotesSession")
    notesSession.Initialize(Password)
    Dim notesDatabase As Object = notesSession.GETDATABASE(ServerName, DatabaseName)
    Dim Query as String = "{Form = Project}"
    Dim notesDocumentCollection As Object = notesDatabase.Search(Query, Nothing, 0)
    Dim notesDocument As Object = notesDocumentCollection.GetFirstDocument

Но на notesDatabase.Search (Query, Nothing, 0) это дает мне исключение времени выполнения, говорящее о несоответствии типов. Использование Nothing и 0 для 2-го и 3-го аргументов в порядке согласно https://www.ibm.com/support/knowledgecenter/it/SSVRGU_9.0.1/basic/H_SEARCH_METHOD.html

Поэтому я подозреваю, что я делаю что-то не так с первым аргументом

notesDocumentCollection = notesDatabase .Search (формула $, notesDateTime, maxDocs%)

Может кто-нибудь сказать мне, что я здесь не так делаю?

1 Ответ

3 голосов
/ 28 марта 2019

Ваша формула неверна. Это должно быть

"Form = ""Project"""

Кроме того, концепция «Ничего», кажется, отличается между COM-классами и vb.net, как вы выяснили при попытке: вам нужно использовать параметр правильного типа. В вашем случае:

New Runtime.InteropServices.UnknownWrapper(Nothing)

вместо простого

Nothing

как ваш второй параметр.

...