调用Sybase SP,错误“未找到SP”

时间:2012-08-21 15:38:55

标签: c# stored-procedures odbc sybase-asa

我正在连接到Sybase 9数据库以检索数据。我可以使用ODBC连接查询数据库而没有问题,但我在调用存储过程时遇到问题。该程序大概是在6 - 7年前编写的。这就是我必须执行存储过程。

OdbcCommand itemWeightAve = conn.CreateCommand();
itemWeightAve.CommandText = "ComputeLastCost";
itemWeightAve.CommandType = CommandType.StoredProcedure;
itemWeightAve.Parameters.AddWithValue("@OwnerId", "BananaHammock");//company number
itemWeightAve.Parameters.AddWithValue("@InventoryId", InventoryNumberHere);//inventory id from query results
itemWeightAve.Parameters.AddWithValue("@EndDate", EndDateHere);//end date from query results
OdbcDataReader itemAveReader = itemWeightAve.ExecuteReader();

我对Sybase或ODBC不太熟悉,这些人使用的版本非常陈旧,不再正式支持。升级Sybase数据库是不可能的。尝试执行此命令时出现的错误是......

  

错误[42S02] [Sybase] [ODBC驱动程序] [Adaptive Server Anywhere]

     

找不到程序'ComputeLastCost'

我知道该过程存在,输入正确,并且参数名称存在且输入正确。有没有人对我在这里做错了什么提示/提示/建议?

1 个答案:

答案 0 :(得分:2)

将评论转化为答案......

您使用的登录的默认数据库是什么?

存储过程是否在同一个数据库中?

如果没有,则需要在过程名称前加上数据库名称“sharedDB.ComputeLastCost”。

您可以通过isql使用相同的用户/密码登录来检查,并尝试手动执行。如果在执行之前必须使用数据库(即使用数据库sharedDB),则需要将数据库名称放在前面。

您还可以更改用户的默认数据库。无论哪种方式都应该有效。