Поделиться через


CCommand::Close

Выпуски набор строк метода доступа, связанный с командой.

void Close( );

Заметки

Команда использует набор строк, метод доступа результирующего набора и (при необходимости) метод доступа к параметру (в отличие от таблицы, которые не поддерживают параметры и не нужен метод доступа к параметру).

После завершения команды, необходимо вызвать, и Close и ReleaseCommand после команды.

Когда требуется выполнить одну и ту же команду повторно, необходимо освободить каждый метод доступа результирующего набора путем вызова Close перед вызовом Execute.В конце ряда, необходимо освободить метод доступа к параметру с помощью ReleaseCommand.Другой распространенный сценарий вызывает хранимую процедуру, которая имеет параметры вывода.Во многих поставщиков (например поставщик OLE DB для SQL Server) значения параметров вывода будут недоступны до тех пор, пока не будет закрыть метод доступа результирующего набора.Вызовите Close, чтобы закрыть, возвращаемый метод доступа к набору строк и результирующего набора, а не метод доступа к параметру, тем самым позволяя извлекать значения параметра вывода.

Пример

В следующем примере показано, как можно вызвать Close и ReleaseCommand при выполнении одной и той же команды повторно.

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

Требования

Header: atldbcli.h

См. также

Ссылки

Класс CCommand

CCommand::ReleaseCommand