Я подключился к серверу Informix с помощью RazorSQL, создал хранимую процедуру и протестировал ее, получив ожидаемый ответ, поэтому процедура существует в базе данных в некоторой форме.
Затем я запускаю следующий код:
If ConnectToInformix() Then
Dim cmd As New IfxCommand("dc_routeHasOutstandingQuantity", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New IfxParameter("WorksOrder", wo_num))
cmd.Parameters.Add(New IfxParameter("CompNo", IBM.Data.Informix.IfxType.SmallInt)).Value = CType(compNo, Int16)
rdr = cmd.ExecuteReader
Для полноты, вот функция ConnectToInformix.
Private Function ConnectToInformix() As Boolean
Try
If conn Is Nothing Then
conn = New IfxConnection
conn.ConnectionString = ConnectionString
End If
If conn.State = System.Data.ConnectionState.Closed Then
conn.Open()
End If
Return True
Catch ex As System.Exception
conn.Dispose()
conn = Nothing
Return False
End Try
End Function
Функция ConnectToInformix прекрасно работает для всех остальных подключений Informix, созданных этой программой, но это первая используемая хранимая процедура Informix, поэтому, возможно, мне нужно работать над этим соединением ...
В любом случае, когда я пытаюсь вызвать хранимую процедуру в строке rdr = cmd.ExecuteReader
, я получаю следующую ошибку:
ERROR [HY000] [Informix .NET provider][Informix]Cannot read system catalog (sysprocedures).
Эта ошибка не возникает при вызове хранимой процедуры из живого соединения SQL.
Что я делаю не так?