Ошибка переполнения данных хранимой процедуры LotusScript

#lotus-notes #lotusscript

#lotus-notes #lotusscript

Вопрос:

С помощью Lotus Script я объявил переменную:

 Dim SomethingId As LCField
  

Позже я выполняю

 Set parms = New LCFieldList
Set SomethingId = parms.Append("@somethingID", LCTYPE_INT)
  

* Я также пробовал LCTYPE_TEXT Я прочитал свой SomethingID из LotusNotes

 Dim intSomeID As Integer
If  doc.GetItemValue("someID")(0) = Null  Or doc.GetItemValue("someID")(0) = "" Then
    intSomeID = "0"
Else
    intSomeID = doc.GetItemValue("someID")(0)
End If

Messagebox "someID = " amp; intSomeID
  

в моем окне сообщения отображается «someID = 0

но когда я добираюсь до строки, где я пытаюсь вставить данные в переменную параметра, я получаю ошибку переполнения данных.

 SomethingId.Text = intSomeID
  

Я пробовал

 SomethingId.Value = intsomeID
  

Кто-нибудь теперь, что является причиной этого? И что еще более важно, как это исправить?

Ответ №1:

Посмотрите документацию по LCField здесь и здесь

Свойство Text представляет собой массив, поэтому, возможно, именно поэтому вы получаете ошибку. Я предполагаю, что при записи в свойство Text ожидается массив, а не одно значение.

Однако в качестве альтернативы можно использовать .Метод SetInt() в LCField для присвоения вашего значения intSomeID. Например:

 SomethingId.SetInt(1, intSomeID)
  

Комментарии:

1. Если я попытаюсь это сделать, то получу сообщение «Незаконное использование круглых скобок», которое, похоже, не распознает этот метод. Должно быть, мы используем более раннюю версию lsxlc или что-то в этом роде… ни один из совпадающих примеров кода не распознается как допустимый синтаксис.

2. Что, если перед строкой указать «Call», например Call Something.Id.SetInt(1, intSomeID)