为什么用ODBC调一个Update的存储过程出现异常(Function sequence error),该怎样解决?

思危 2003-04-23 10:17:19
我用ODBC调一个SQL SERVER 2000存储过程,如下:
CREATE PROCEDURE UpdateProduct @ProductID INTEGER,@ProductName VARCHAR(20)
AS
UPDATE tblProduct
SET ProductName=@ProductName
WHERE ProductID=@ProductID
GO
修改成功,但出现异常(Function sequence error),为什么?我该如何处理呢?
...全文
245 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
思危 2003-07-01
  • 打赏
  • 举报
回复
这个问题我通过过载MoveNext解决了。
谢谢指教。
结帖子
思危 2003-05-10
  • 打赏
  • 举报
回复
再up一下就结帖吧,谁还能讲讲
思危 2003-04-29
  • 打赏
  • 举报
回复
那Insert为什么可以,它会返回什么吗?
思危 2003-04-28
  • 打赏
  • 举报
回复
异常是在Open函数中的MoveNext里调用SQLFetch产生的
思危 2003-04-28
  • 打赏
  • 举报
回复
我想知道的是为什么CRcordset调用只有INSERT语句的存储过程没问题,而UPDATE却会抛出异常,他们都没有返回什么呀?而给UPDATE加上一个有返回的语句(如SELECT)就好了,二者之间有什么不同
small_wei 2003-04-28
  • 打赏
  • 举报
回复
哦!如果存储过程没有返回结果不能用Open打开的,因为open后creocrdset要执行一个MoveNext,所以会出错。这只用调executesql 来调用。
丁淇石头 2003-04-27
  • 打赏
  • 举报
回复
在Open语句中调用可能不行,用以下代码:
CString strSQL;
CDatabase * pDatabase = new CDatabase;
try
{
pDatabase->OpenEx("DSN=OdbcName; UID=***;PWD=***", NULL);
}
catch(CDBException* e)
{
e->ReportError();
pDatabase->Close();
delete pDatabase;
return;
}
strSQL = "exec UpdateProduct (?, ?, ?)";
pDatabase->ExecuteSQL(strSQL);

pDatabase->Close();
delete pDatabase;

思危 2003-04-26
  • 打赏
  • 举报
回复
我的调用过程
long strID = 20;
CString strName = "芒果";
long nPrice = 100;

CString strSQL = "{CALL UpdateProduct (?, ?, ?)}";

CUpdateProc Proc;
Proc.m_ProductID = strID;
Proc.m_ProductName = strName;
Proc.m_Price = nPrice;

try
{
Proc.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL);
}
catch(CException* e)
{
e->ReportError();
}
small_wei 2003-04-25
  • 打赏
  • 举报
回复
你的调用过程程序?
思危 2003-04-24
  • 打赏
  • 举报
回复
没有,只要我在下面添上带返回的语句后就好了如
CREATE PROCEDURE UpdateProduct @ProductID INTEGER,@ProductName VARCHAR(20)
AS
UPDATE tblProduct
SET ProductName=@ProductName
WHERE ProductID=@ProductID

SELECT *
FROM tblProduct
GO
丁淇石头 2003-04-23
  • 打赏
  • 举报
回复
先在SQL Server Query Analys中调用一下存储过程,试试存储过程对不对
small_wei 2003-04-23
  • 打赏
  • 举报
回复
是VC调用程序出错?还是SQL SERVER 2000存储过程出错?
small_wei 2003-04-23
  • 打赏
  • 举报
回复
有无内存泻漏?
思危 2003-04-23
  • 打赏
  • 举报
回复
用ADO在VC和Delphi中调用都正常,而且虽然有异常但对表进行了修改
思危 2003-04-23
  • 打赏
  • 举报
回复
在SQL SERVER中正确调用正常

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧