У меня есть хранимая процедура Informix, которая принимает int и "smallint" в качестве параметров.Я пытаюсь вызвать этот SP из программы Visual Basic .net4.
Насколько я знаю, "smallint" является байтом.К сожалению, при загрузке коллекции IfxCommand.Parameters с помощью Integer и байта я получаю исключение ArgumentException равное {"The parameter data type of Byte is invalid."}
со следующей трассировкой стека:
в IBM.Data.Informix.TypeMap.FromObjectType (тип dataType, длина Int32) в IBM.Data.Informix.TypeMap.FromObjectType (тип dataType) в IBM.Data.Informix.IfxParameter.GetTypeMap () в IBM.Data.Informix.IfxParameter.GetOtfferbaseUp (, CNativeBuffer lenIndBuffer) в IBM.Data.Informix.IfxDataReader.Dispose (логическое удаление) в IBM.Data.Informix.IfxDataReader.System.IDisposable.Dispose () в IBM.Data.Informix.IfxCommand.ExecuteReaderObjecte) в IBM.Data.Informix.IfxCommand.ExecuteReader (поведение CommandBehavior) в IBM.Data.Informix.IfxCommand.ExecuteReader ()
Предположительно, мне нужно преобразовать нужный мне байт в smallint, каким-то образом, но Google не дает мне соответствующих ответов, только на данный момент.
У меня естьрид, используя:
cmd.Parameters.Add(New IfxParameter("myVal", IBM.Data.Informix.IfxType.SmallInt)).Value = myByte
но я все равно получаю то же ArgumentException при выполнении чтения.
Может кто-нибудь сказать мне, что я делаю неправильно?