Entrar

Como usar identidade SQL Server, OLE DB modelos 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 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.

194678
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.
Sumário
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.
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();				
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"

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
Comentários