CCommand::Close

释放访问器行集合与命令关联。

void Close( );

备注

命令使用行集合、结果集的访问器和 (可选) 参数访问器 (不同于表,不支持参数,并不需要参数访问器)。

在执行命令时,应在命令之后调用 Close 和 ReleaseCommand

如果要重复时执行相同的命令,则应通过调用 Close 释放每个结果 set 访问器在调用 Execute之前。 在此系列演练结束时,您应通过调用 ReleaseCommand释放参数访问器。 另一种常见情形调用具有输出参数的存储过程。 在许多提供程序 (如 SQL Server 的 OLE DB 提供程序) 输出参数值将不可访问,只有在关闭结果 set 访问器。 调用 Close 关闭返回的行集合和生成 set 访问器,但是,不是参数访问器,从而允许检索输出参数值。

示例

下面的示例演示如何调用 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