这个问题困扰我半年,解决后,我全部送完都行,关于VC调用ORACLE存储过程问题

xiao_begonia 2005-02-06 11:18:16
这是别人给我的存储过程,ORACLE817的,WIN2K平台下
(
idname in varchar2,id out integer)
as
row_count integer;
begin
lock table t_identity in row exclusive mode;
update t_identity
set maxno=maxno + 1
where name=idname;
select maxno into id from t_identity where name=idname;
commit;
end;


这是我调用存储过程的函数,返回值是ID值,但是再*****那一行出错
int GetNewID(char *Inputstr)
{
int ret=-1;

//调用带输入和输出参数的存储过程
_CommandPtr cmd;
cmd.CreateInstance("ADODB.Command");

//输入参数
_ParameterPtr pParamRk;
pParamRk.CreateInstance("ADODB.Parameter");

//pParamRk->Name="mo07"; //存储过程的参数1
pParamRk->Type=adChar; //字符串
pParamRk->Size=20;
pParamRk->Direction=adParamInput;//表明是输入参数
pParamRk->Value=_variant_t(Inputstr);//int->CString->_variant_t后赋值
//****************************************
cmd->Parameters->Append(pParamRk);//此句执行出错????????
//****************************************

//输出参数
_ParameterPtr pParamOk;
pParamOk.CreateInstance("ADODB.Parameter");
//pParamOk->Name="rowcount"; //参数2名称
pParamOk->Type=adInteger; //整型
pParamOk->Direction=adParamOutput; //声明是输出参数
cmd->Parameters->Append(pParamOk);

cmd->ActiveConnection = m_pConnection;
cmd->CommandText="ADE.PROC_ALLOC_ID"; //存储过程的名字
cmd->CommandType=adCmdStoredProc;//表示为存储过程adCmdStoredProc

//执行,获得结果
_RecordsetPtr m_pRecordset;
m_pRecordset = cmd->Execute(NULL, NULL, adCmdStoredProc);


printf("storeproc id is:%s\n",(char*)_bstr_t(pParamOk->Value));
//AfxMessageBox((char*)_bstr_t(pParamRk->Value));
//AfxMessageBox((char*)_bstr_t(pParamOk->Value));
ret=atoi((char*)_bstr_t(pParamOk->Value));

return ret;
}

出的错是Debug error!
因为不能在服务器上调试,只能编译好了多打些打印信息找错误,

执行到cmd->ActiveConnection = m_pConnection;跳出
catch说是无效指针。

但是,我编写的这个函数在我自己的机器上怎么运行都正常啊!!!
...全文
135 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsz1995 2005-02-17
  • 打赏
  • 举报
回复
m_pConnection是不是没有Open?
xiao_begonia 2005-02-06
  • 打赏
  • 举报
回复
当然是_ConnectionPtr m_pConnection了
hjx000 2005-02-06
  • 打赏
  • 举报
回复
m_pConnection是什么东西,怎么没有看到m_pConnection的定义

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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