我正在连接到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
'
我知道该过程存在,输入正确,并且参数名称存在且输入正确。有没有人对我在这里做错了什么提示/提示/建议?
答案 0 :(得分:2)
将评论转化为答案......
您使用的登录的默认数据库是什么?
存储过程是否在同一个数据库中?
如果没有,则需要在过程名称前加上数据库名称“sharedDB.ComputeLastCost”。
您可以通过isql使用相同的用户/密码登录来检查,并尝试手动执行。如果在执行之前必须使用数据库(即使用数据库sharedDB),则需要将数据库名称放在前面。
您还可以更改用户的默认数据库。无论哪种方式都应该有效。