下面進行ADO代碼編制與注意事項
對于進行ADO代碼執(zhí)行操作過程中,執(zhí)行存儲過程的操作和上面執(zhí)行SQL語句類似,不同點僅是CommandText參數(shù)中不再是SQL語句,而是存儲過程的名字,如Demo。另一個不同點就是在Execute()中參數(shù)由adCmdText(執(zhí)行SQL語句)。
改為adCmdStoredProc來執(zhí)行存儲過程。如果存儲過程中存在輸入、輸出參數(shù)的話,需要使用到另一個智能指針_ParameterPtr來逐次設置要輸入、輸出的參數(shù)信息,并將其賦于_CommandPtr中Parameters參數(shù)來傳遞信息,ADO代碼有興趣的讀者可以自行查找相關書籍或MSDN。執(zhí)行存儲過程的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代碼。但我們有時經(jīng)常需要隨意移動記錄指針到任意記錄位置時。#t#
可以使用Move(記錄號)方法來實現(xiàn),注意: ADO代碼方法是相對于當前記錄來移動指針位置的,正值向后移動、負值向前移動,如:Move(3),當前記錄是3時,它將從記錄3開始往后再移動3條記錄位置。