用ADO 调SQL SERVER的存储过程出错存储过程是这样些的: 用查询分析器调用通过,运行结果正确
CREATE PROCEDURE update_PubDevUnitOutSwiData
@id int,
@currenttime int,
@PV int
AS
update PubDevUnitOutSwiData
set currenttime = @currenttime,
PV = @PV
where id = @idVC测试代码如下:void TestCallStoreProcedure::test_update_GeneInSwiData()
{
int id = 1888;
//int currenttime = Sys::getCurrentTimeInt();
int currenttime = 99;
int PV = 8; m_local_connector.param = (m_local_connector.cmmd)->CreateParameter("currenttime",adUnsignedInt,
adParamInput, sizeof(int), _variant_t(currenttime));
(m_local_connector.cmmd)->Parameters->Append(m_local_connector.param); m_local_connector.param = (m_local_connector.cmmd)->CreateParameter("id",adTinyInt,
adParamInput,sizeof(int),_variant_t(id));
(m_local_connector.cmmd)->Parameters->Append(m_local_connector.param); m_local_connector.param =
(m_local_connector.cmmd)->CreateParameter("PV",adTinyInt, adParamInput, sizeof(int) , _variant_t(PV));
(m_local_connector.cmmd)->Parameters->Append(m_local_connector.param); (m_local_connector.cmmd)->CommandText=_bstr_t("update_GeneInSwiData");
(m_local_connector.cmmd)->CommandType = adCmdStoredProc; TRACE("TABLE IS : pubDevUnitSimuData"); (m_local_connector.cmmd)->ActiveConnection = m_local_connector.pConn; (m_local_connector.cmmd)->Execute(NULL, NULL, adCmdStoredProc);
}
==========================================可以确认是在最后一步执行的时候报错的, 看了出错的 hr 的值是 DB_E_ERRORSOCCURED 不知道是什么原因。 而且其中应该不会涉及表的约束问题。 麻烦大家帮忙解决!!!非常感谢!!!
CREATE PROCEDURE update_PubDevUnitOutSwiData
@id int,
@currenttime int,
@PV int
AS
update PubDevUnitOutSwiData
set currenttime = @currenttime,
PV = @PV
where id = @idVC测试代码如下:void TestCallStoreProcedure::test_update_GeneInSwiData()
{
int id = 1888;
//int currenttime = Sys::getCurrentTimeInt();
int currenttime = 99;
int PV = 8; m_local_connector.param = (m_local_connector.cmmd)->CreateParameter("currenttime",adUnsignedInt,
adParamInput, sizeof(int), _variant_t(currenttime));
(m_local_connector.cmmd)->Parameters->Append(m_local_connector.param); m_local_connector.param = (m_local_connector.cmmd)->CreateParameter("id",adTinyInt,
adParamInput,sizeof(int),_variant_t(id));
(m_local_connector.cmmd)->Parameters->Append(m_local_connector.param); m_local_connector.param =
(m_local_connector.cmmd)->CreateParameter("PV",adTinyInt, adParamInput, sizeof(int) , _variant_t(PV));
(m_local_connector.cmmd)->Parameters->Append(m_local_connector.param); (m_local_connector.cmmd)->CommandText=_bstr_t("update_GeneInSwiData");
(m_local_connector.cmmd)->CommandType = adCmdStoredProc; TRACE("TABLE IS : pubDevUnitSimuData"); (m_local_connector.cmmd)->ActiveConnection = m_local_connector.pConn; (m_local_connector.cmmd)->Execute(NULL, NULL, adCmdStoredProc);
}
==========================================可以确认是在最后一步执行的时候报错的, 看了出错的 hr 的值是 DB_E_ERRORSOCCURED 不知道是什么原因。 而且其中应该不会涉及表的约束问题。 麻烦大家帮忙解决!!!非常感谢!!!
我以前也事用一个变量,还是相同的参数类型都出错,后来改成多个变量就可以了