0

我正在连接到 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未找到程序“ ”

我知道该过程存在,输入正确,并且参数名称存在并且输入正确。有人对我在这里做错的事情有任何提示/提示/建议吗?

4

1 回答 1

2

把评论变成了答案...

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

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

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

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

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

于 2012-08-21T19:12:28.567 回答