Udostępnij za pośrednictwem


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

Zobacz też

Informacje

Klasa CCommand

CCommand::ReleaseCommand