WEB开发网
开发学院软件开发VC VC中使用ADO调用存储过程实现方法 阅读

VC中使用ADO调用存储过程实现方法

 2008-11-12 19:26:39 来源:WEB开发网   
核心提示: 在这里,有一点要注意的是VretVal = pCmd->Parameters->GetItem(short(4))->Value;这里的4,VC中使用ADO调用存储过程实现方法(3),就是哪个output参数的index,就是我在2中说的参数的顺序这里使用了Refresh

在这里,有一点要注意的是

VretVal = pCmd->Parameters->GetItem(short(4))->Value;

这里的4,就是哪个output参数的index,就是我在2中说的参数的顺序

这里使用了Refresh,这是一个很重要的函数,我将在下面介绍一下它,我要先贴出另一种,不使用Refresh的办法,

5 .使用非Refresh的方法来调用

先定义变量

  _CommandPtr   pCmd = NULL;
  _RecordsetPtr  pRecordset = NULL;
  _ParameterPtr  retParam = NULL; 
  
_ParameterPtr  inParam1 = NULL; 
_ParameterPtr  inParam2 = NULL; 
_ParameterPtr  outParam1 = NULL;
_ParameterPtr  outParam2 = NULL; 

初试化

  pCmd.CreateInstance(__uuidof(Command));
 
pRecordset.CreateInstance(_uuidof(Recordset));
  retParam.CreateInstance(__uuidof(Parameter));
  //其他的ParameterPtr  也初试化
 
pCmd->ActiveConnection = pConn;
pCmd->CommandType = adCmdStoredProc;
 
pCmd->CommandText=_bstr_t(_T("sp_1")); //SP Name
  retParam = pCmd ->CreateParameter(_bstr_t("Return"),                     adInteger,
      adParamReturnValue,
      sizeof(int));
  pCmd->Parameters->Append(retParam);
 
inParam1 = pCmd ->CreateParameter(_bstr_t("InParam1"),
                 adInteger,
      adParamInput,
      sizeof(int));
  inParam1->Value = _variant_t(3);
  pCmd->Parameters->Append(inParam1);
  inParam2 = pCmd ->CreateParameter(_bstr_t("InParam2"),
                 adChar,
      adParamInput,[Page]
      10);
inParam2->Value = _variant_t(_T("DD1"));
  pCmd->Parameters->Append(inParam2);
  outParam1 = pCmd ->CreateParameter(_bstr_t("OutParam1"),
                 adInteger,
      adParamOutput,
      sizeof(int));
  pCmd->Parameters->Append(outParam1);
  outParam2 = pCmd ->CreateParameter(_bstr_t("OutParam2"),
                 adChar,
      adParamOutput,
      10);
  pCmd->Parameters->Append(outParam2);

这里不用refresh的办法,是用Parameter来,这里要注意的是,这个add的顺序要和参数的index顺序要一致

上一页  1 2 3 4  下一页

Tags:VC 使用 ADO

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接