CCommand::Close
Zwalnia akcesor zestawu wierszy skojarzonych z poleceniem.
void Close( );
Uwagi
W poleceniu użyto zestawu wierszy, akcesor zestawu wyników i (opcjonalnie) parametryzowana (w przeciwieństwie do tabel, które nie obsługują parametrów i nie ma potrzeby parametryzowana).
Podczas wykonywania polecenia, powinna wywołać zarówno Close i ReleaseCommand po wykonaniu polecenia.
Gdy chcesz wielokrotnie wykonanie tego samego polecenia, należy zwolnić każdego akcesor zestawu wyników przez wywołanie Close przed wywołaniem funkcji Execute.Na końcu serii, należy zwolnić parametryzowana przez wywołanie ReleaseCommand.Innym typowym scenariuszem wywołuje procedurę przechowywaną, która posiada parametry wyjściowe.Na wielu dostawców (np. dostawca OLE DB dla programu SQL Server) wartości parametrów wyjściowych nie będzie dostępny do momentu zamknięcia akcesor zestawu wyników.Wywołanie Close aby zamknąć zestaw wierszy zwracanych i akcesor zestawu wyników, ale nie parametryzowana, pozwalając w ten sposób do pobierania wartości parametrów wyjściowych.
Przykład
W poniższym przykładzie pokazano, jak można wywołać Close i ReleaseCommand kiedy wykonać to samo polecenie wielokrotnie.
void DoCCommandTest()
{
HRESULT hr;
hr = CoInitialize(NULL);
CCustomer rs; // Your CCommand-derived class
rs.m_BillingID = 6611; // Open billing ID 6611
hr = rs.OpenAll(); // (Open also executes the command)
hr = rs.MoveFirst(); // Move to the first row and print it
_tprintf_s(_T("First name: %s, Last Name: %s, Customer ID: %d, Postal Code: %s\n"),
rs.m_ContactFirstName, rs.m_L_Name, rs.m_CustomerID, rs.m_PostalCode);
// Close the first command execution
rs.Close();
rs.m_BillingID = 3333; // Open billing ID 3333 (a new customer)
hr = rs.Open(); // (Open also executes the command)
hr = rs.MoveFirst(); // Move to the first row and print it
_tprintf_s(_T("First name: %s, Last Name: %s, Customer ID: %d, Postal Code: %s\n"),
rs.m_ContactFirstName, rs.m_L_Name, rs.m_CustomerID, rs.m_PostalCode);
// Close the second command execution;
// Instead of the two following lines
// you could simply call rs.CloseAll()
// (a wizard-generated method):
rs.Close();
rs.ReleaseCommand();
CoUninitialize();
}
Wymagania
Nagłówek: atldbcli.h