Como utilizar a identidade do SQL Server, modelos de OLE DB e OLE DB para ODBC no Visual C++

Traduções de Artigos Traduções de Artigos
Quando utilizar os modelos de OLE DB com uma base de dados do SQL Server, é frequentemente necessário adicionar registos a uma tabela que contenha uma coluna de identidade.

Obter uma coluna de identidade para incrementar correctamente com o OLE DB para ODBC fornecedor que é fornecido com o Visual C++ 6.0, Msdasql.dll, requer que a macro COLUMN_ENTRY_STATUS.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Nota Microsoft Visual C++ .NET 2002 e Microsoft Visual C++ .NET 2003 suportam o modelo de código gerido que é fornecido pelo Microsoft .NET Framework e o modelo de código do Microsoft Windows nativo não gerido. As informações neste artigo aplicam-se apenas ao código de Visual C++ não gerido.Microsoft Visual C++ 2005 suporta ambos os o modelo de código gerido que é fornecido pelo Microsoft .NET Framework e modelo de código não gerido Microsoft Windows nativo.

Referências

Por favor consulte os tópicos seguintes na documentação online da MSDN:

  • VC ++ documentação COLUMN_ENTRY_STATUS
  • OLE DB tópico intitulado "Estado" define "DBSTATUS_S_IGNORE"

Para obter mais informações

O código de exemplo seguinte demonstra como utilizar esta macro quando definir um mapa de descritor de acesso com o Visual C++ 6.0 OLE DB Consumer modelos:

Código de exemplo

   class CMyTableAccessor
   {
   public:
      LONG m_id;          // This is an identity column
      DWORD m_id_status;  // Status variable for id column
      TCHAR m_name[11];

   BEGIN_COLUMN_MAP(CMyTableAccessor)
     COLUMN_ENTRY_STATUS(1, m_id, m_id_status)
     COLUMN_ENTRY(2, m_name)
   END_COLUMN_MAP()

   ...
   };
				
O código para adicionar um novo registo à tabela deverá assemelhar-se o seguinte:
   CMyTable rs;

   rs.Open();
   rs.ClearRecord();  //Null out current structure

   strcpy(rs.m_name , "New Name");
   rs.m_id_status = DBSTATUS_S_IGNORE;  //Tells the provider to ignore this
                                        // column when updating.

   rs.Insert();  // Insert new record into the table letting server update
                // of the identity column.
   rs.Close();
				

Sobre este artigo

Artigo: 194678
Última revisão: 23 de fevereiro de 2014
A informação contida neste artigo aplica-se a:: Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition, Microsoft Visual C++ 6.0 Enterprise Edition, Microsoft Visual C++ 6.0 Professional Edition, Microsoft Visual C++, 32-bit Learning Edition 6.0, Microsoft Data Access Components 2.5
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 194678

Get more support from smallbusiness.support.microsoft.com

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.