【发布时间】:2011-05-17 09:28:59
【问题描述】:
我使用 RazorSQL 连接到 Informix 服务器,创建了一个存储过程并对其进行了测试,得到了预期的答案,因此该过程以某种形式存在于数据库中。
然后我运行以下代码:
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 连接调用存储过程时不会发生此错误。
我做错了什么?
【问题讨论】:
-
informix 有
sysprocedures目录吗?
标签: .net sql vb.net stored-procedures informix