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