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

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.

194678
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.
Sumário
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.
Mais Informação
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();				
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"

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 194678 - Última Revisão: 02/23/2014 05:25:38 - Revisão: 3.0

  • 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
  • kbnosurvey kbarchive kbmt kbconsumer kbdatabase kbhowto kbprovider KB194678 KbMtpt
Esta informação foi útil?