Como usar identidade SQL Server, OLE DB modelos e OLE DB para ODBC no Visual C++

Traduções deste artigo Traduções deste artigo
Ao usar os modelos OLE DB com um banco de dados SQL Server, geralmente é necessário adicionar registros a uma tabela que contém uma coluna de identidade.

Obter uma coluna de identidade para incrementar corretamente com o OLE DB para provedor ODBC que é fornecido com o Visual C++ 6.0, MSDASQL.dll, exige que a macro COLUMN_ENTRY_STATUS seja usado.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Observação Microsoft Visual C++ .NET 2002 e Microsoft Visual C++ .NET 2003 oferecem suporte o modelo de código gerenciado fornecido pelo Microsoft .NET Framework e o modelo de código do Windows de Microsoft nativo não gerenciado. As informações neste artigo se aplicam somente ao código do Visual C++ não gerenciado.Microsoft Visual C++ 2005 oferece suporte a dois o modelo de código gerenciado que é fornecido pelo Microsoft .NET Framework e modelo de código não gerenciado Microsoft Windows nativo.

Referências

Por favor consulte os tópicos a seguir na documentação online do MSDN:

  • Documentação do VC ++ para COLUMN_ENTRY_STATUS
  • OLE DB tópico intitulado "Status" define "DBSTATUS_S_IGNORE"

Para obter mais informações

O código de exemplo a seguir demonstra como usar essa macro ao definir um mapa de acessador com Visual C++ 6.0 OLE DB consumidor 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 registro à tabela poderia se parecer com 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

ID do artigo: 194678
Última revisão: domingo, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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.