Compartilhar via


CCommand::fechar

Libera o conjunto de linhas de acessador associado ao comando.

void Close( );

Comentários

Um comando usa um conjunto de linhas, acessador de conjunto de resultados e (opcionalmente) um acessador de parâmetro (ao contrário das tabelas, que não suportam parâmetros e não é necessário um acessador de parâmetro).

Quando você executar um comando, você deve chamar os dois Close e ReleaseCommand depois do comando.

Quando você desejar executar repetidamente o mesmo comando, você deve liberar cada acessador de conjunto de resultados chamando Close antes de ligar Execute. No participante da série, você deve versão o acessador de parâmetro chamando ReleaseCommand. Outro cenário comum está chamando um procedimento armazenado com parâmetros de saída.Em muitos provedores (sistema autônomo o provedor OLE DB para SQL servidor) sistema autônomo valores de parâmetro de saída não estarão acessíveis até você fechar o acessador de conjunto de resultados. De telefonarClose para fechar o conjunto de linhas retornado e acessador de conjunto de resultados, mas não o acessador de parâmetro, permitindo, dessa forma, que você recupere os valores de parâmetro de saída.

Exemplo

O exemplo a seguir mostra como você pode telefonar Close e ReleaseCommand Quando você executa o mesmo comando várias vezes.

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

Requisitos

Cabeçalho: atldbcli.h

Consulte também

Referência

Classe CCommand

CCommand::ReleaseCommand

Outros recursos

CCommand membros