CCommand::Close
Zwalnia akcesor zestawu wierszy, skojarzonej z poleceniem.
void Close( );
Uwagi
Polecenie używa zestawu wierszy, akcesor zestawu wyników i (opcjonalnie) akcesor parametru (w przeciwieństwie do tabel, które nie obsługuje parametrów i nie ma potrzeby akcesor parametru).
Podczas wykonywania polecenia powinna wywołać oba Close i ReleaseCommand po poleceniu.
Umożliwia wykonanie tego samego polecenia wielokrotnie każdego akcesor zestawu wyników należy zwolnić, wywołując Close przed wywoływaniem Execute.Na końcu serii akcesor parametru należy zwolnić, wywołując ReleaseCommand.Innym typowym scenariuszem jest wywołaniem procedury przechowywanej, która ma parametry wyjściowe.Wielu dostawców (np. dostawcy OLE DB dla programu SQL Server) wartości parametru wyjściowego nie będą dostępne, dopóki nie zamkniesz akcesor zestawu wyników.Wywołanie Close zamknąć zwróconych wierszy i akcesor zestawu wyników, ale nie parametryzowana, co pozwala pobrać wartości parametru wyjściowego.
Przykład
W poniższym przykładzie pokazano, jak można wywołać Close i ReleaseCommand podczas wykonywania tego samego polecenia 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