Проблема с типом данных при создании подключений к базе данных notes

#lotus-notes #lotus-domino #lotusscript #lotus

#lotus-notes #lotus-domino #lotusscript #lotus

Вопрос:

Я ввожу значение определенного документа notes в переменную, которая имеет тип данных VARIANT.

Причина: значение включает обратную косую черту, буквы и цифры.

Позже в моем коде я хотел бы создать подключения к базе данных с помощью этой переменной. К сожалению, это всегда приводит к сбою со следующим сообщением:

Несоответствие типов в методе CoerceString: неизвестный найден, неизвестный ожидается

Мой код:

 Dim varMailFile As Variant
Dim varMailServer As Variant
Dim maildb As New NotesDatabase( "", "" )
Dim cprofile As NotesDocument

vMailFile = doc.GetItemValue( "MailFile" )
vMailServer = doc.GetItemValue( "MailServer" )

Call maildb.Open(vMailServer, vMailFile)
  

Я уже пытался определить varMailFile и varMailServer как String, но это все еще не работает.
Это также затрудняет устранение неполадок, поскольку в сообщении об ошибке не сообщается, что оно нашло и чего ожидает.

Я надеюсь, вы сможете мне помочь. Спасибо.

Ответ №1:

Документ NotesDocument.GetItemValue всегда возвращает вариант, даже если элемент содержит только одно значение. Вам нужно ЛИБО присвоить вашей переменной первое значение (Index = 0, поскольку LotusScript по умолчанию основан на 0), либо просто использовать первое значение в вашем вызове:

Первая возможность:

 varMailFile = doc.GetItemValue( "MailFile" )(0)
varMailServer = doc.GetItemValue( "MailServer" )(0)
...
Call maildb.Open(varMailServer, varMailFile)
  

Вторая возможность

 varMailFile = doc.GetItemValue( "MailFile" )
varMailServer = doc.GetItemValue( "MailServer" )
...
Call maildb.Open(varMailServer(0), varMailFile(0))