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


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

Требования

Заголовок: atldbcli.h

См. также

Ссылки

Класс CCommand

CCommand::ReleaseCommand