约定:
斜体字体表示可变部分
红色字体表示固定部分
以下步骤的前提条件:COM
ADO库已初始化,已经设置_ConnectionPtr连接对象。
步骤一: 创建 _CommandPtr 对象并初始化
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;
步骤三:设置存储过程的输入/输出参数(如果没有输入参数忽略此步骤)
<变量类型>,
<创建类型>,
<变量大小>);
<创建类型>:输入参数为:adParamInput 输出参数为:adParamOutput
<变量大小> :例如int为4 ,
字符串为字符串的长度
adInteger,
adParamInput,
4);
pParam = pCommand->CreateParameter(_bstr_t("val"),
adInteger,
adParamOutput,
4);
<
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)