现在的位置: 首页 > 综合 > 正文

VC++ ADO调用存储过程方法

2013年12月04日 ⁄ 综合 ⁄ 共 1746字 ⁄ 字号 评论关闭

约定

斜体字体表示可变部分   斜体

红色字体表示固定部分   红体

 

以下步骤的前提条件COM
ADO
库已初始化,已经设置_ConnectionPtr连接对象。

 

步骤一: 创建 _CommandPtr 对象并初始化

 

     _CommandPtr pCommand;

pCommand.CreateInstance(__uuidof(Command));

 

步骤二:设置_CommandPtr 对象的属性

 

1)设置连接字符串

pCommand->ActiveConnection = < _ConnectionPtr 类型的变量>;//连接字符串

例如:pCommand->ActiveConnection = m_OraDateBase.m_pConnection;

 

2) 标记该操作为存储过程 (如果存储过程输出参数为记录集,忽略此步骤)

pCommand->CommandType = adCmdStoredProc;

 

3)设置PLSQLRSet属性(如果存储过程输出参数不是记录集,忽略此步骤)

pCommand->Properties->GetItem("PLSQLRSet")->Value = true;

步骤三:设置存储过程的输入/输出参数(如果没有输入参数忽略此步骤

 

   1) 创建 _ParameterPtr对象并初始化

        _ParameterPtr pParam;

        pParam.CreateInstance(__uuidof(Parameter));

 

   2)设置_ParameterPtr对象的变量相关参数

     pParam pCommand->CreateParameter(<变量名称>,

<变量类型>,

<创建类型>,

<变量大小>);

   <变量名称> : 这个名称会在取数据的时候用到

   <变量类型> 变量类型可以参考以下网页:

  http://school.it168.com/special/manual/ado/index.htm?url=/special/manual/ado/html/mdidxparametervcppsyntax.htm

 

<创建类型>:输入参数为:adParamInput 输出参数为:adParamOutput

<变量大小> :例如int4 ,
字符串为字符串的长度

 

  例如:

 pParam = pCommand->CreateParameter(_bstr_t("GAMEID"),

adInteger,

adParamInput,

4);

pParam pCommand->CreateParameter(_bstr_t("val"),

adInteger,

adParamOutput,

4);

 

   3)设置传入的变量值 (如果是输出参数忽略此步骤)

    pParam->Value = _variant_t(变量值>);

变量值> : 要设置的数值

 

4)加入到Command对象的参数集属性中

pCommand->Parameters->Append(参数对象名>);

例如:

pCommand->Parameters->Append(pParam);

 

步骤四: 执行存储过程(返回记录集的情况)

1)      设置要调用的存储过程名称

pCommand->CommandText = _bstr_t(<存储过程名称>?);

<存储过程名称>:为数据库中存储过程的名称

?的个数为输入参数的个数,例如有三个输入参数,调用格式如下:

pCommand->CommandText = _bstr_t(<存储过程名称>?,?,?);

 

   如下图:

  

 

3)      执行调用

<记录集对象指针> =

pCommand->Execute(NULL,NULL,adCmdStoredProc
| adCmdUnspecified
);

例如:

m_OraDateBase.m_pTempRecord = pCommand->Execute(NULL,NULL,adCmdStoredProc | adCmdUnspecified);

 

 

 

步骤四: 执行存储过程(一般情况)

1)      设置要调用的存储过程名称

抱歉!评论已关闭.