CCommand::Close

Rilascia il rowset della funzione di accesso associato al comando.

void Close( );

Note

Un comando utilizza un rowset, la funzione di accesso set di risultati ed eventualmente una funzione di accesso parametro (a differenza delle tabelle, che non supportano i parametri e non necessitano di una funzione di accesso dei parametri).

Quando si esegue un comando, è necessario chiamare sia Close che ReleaseCommand dopo il comando.

Quando si desidera eseguire più volte lo stesso comando, è necessario rilasciare ogni funzione di accesso set di risultati chiamando Close prima di chiamare Execute.Alla fine della serie, è necessario rilasciare la funzione di accesso di parametro chiamando ReleaseCommand.Un altro scenario comune consiste nel chiamare una stored procedure che dispone di parametri di output.In molti provider (come il provider OLE DB per SQL Server) i valori dei parametri di output non saranno accessibili fino alla chiusura della funzione di accesso del gruppo di risultati.Chiamare Close per chiudere la funzione di accesso restituita al gruppo di risultati e rowset, ma non la funzione di accesso di parametro, in modo che recuperare i valori dei parametri di output.

Esempio

Nell'esempio seguente viene illustrato come è possibile chiamare Close e ReleaseCommand quando si esegue più volte lo stesso comando.

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();
}

Requisiti

Header: atldbcli.h

Vedere anche

Riferimenti

Classe CCommand

CCommand::ReleaseCommand