对于进行ADO代码执行操作过程中,执行存储过程的操作和上面执行SQL语句类似,不同点仅是CommandText参数中不再是SQL语句,而是存储过程的名字,如Demo。另一个不同点就是在Execute()中参数由adCmdText(执行SQL语句)。
改为adCmdStoredProc来执行存储过程。如果存储过程中存在输入、输出参数的话,需要使用到另一个智能指针_ParameterPtr来逐次设置要输入、输出的参数信息,并将其赋于_CommandPtr中Parameters参数来传递信息,ADO代码有兴趣的读者可以自行查找相关书籍或MSDN。执行存储过程的ADO代码如下所示:
- _CommandPtr m_pCommand;
- m_pCommand.CreateInstance(__uuidof(Command));
- m_pCommand->ActiveConnection = m_pConnection;
- m_pCommand->CommandText = "Demo";
- m_pCommand->Execute(NULL,NULL, adCmdStoredProc);
- try
- {
- m_pRecordset->Open("SELECT * FROM DemoTable",
- theApp.m_pConnection.GetInterfacePtr(),
- adOpenDynamic,
- adLockOptimistic,
- adCmdText);
- }
- catch(_com_error *e)
- {
- AfxMessageBox(e->ErrorMessage());
- }
移动记录指针。移动记录指针可以通过MoveFirst()方法移动到***条记录、MoveLast()方法移动到***一条记录、MovePrevious()方法移动到当前记录的前一条记录、MoveNext()方法移动到当前记录的下一条记录ADO代码。但我们有时经常需要随意移动记录指针到任意记录位置时。#t#
可以使用Move(记录号)方法来实现,注意: ADO代码方法是相对于当前记录来移动指针位置的,正值向后移动、负值向前移动,如:Move(3),当前记录是3时,它将从记录3开始往后再移动3条记录位置。