Cómo utilizar la identidad de SQL Server, plantillas OLE DB y OLE DB para ODBC en C++

Seleccione idioma Seleccione idioma
Al utilizar las plantillas OLE DB con una base de datos de SQL Server, suele ser necesario agregar registros a una tabla que contiene una columna de identidad.

Obteniendo una columna de identidad para incrementar correctamente con el OLE DB para el proveedor de ODBC que se distribuye con Visual C++ 6.0, msdasql.dll, requiere el uso de la macro COLUMN_ENTRY_STATUS.
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Nota Microsoft Visual C++ .NET 2002 y Visual C++ .NET 2003 admiten el modelo de código administrado suministrada por Microsoft .NET Framework y el modelo de código nativo no administrado de Microsoft Windows. La información de este artículo sólo se aplica al código no administrado de Visual C++.Microsoft Visual C++ 2005 admite tanto el modelo de código administrado proporcionado por Microsoft .NET Framework y modelo de código de las no administrado nativo de Microsoft Windows.

Referencias

Por favor, vea los temas siguientes en documentación en línea de MSDN:

  • Documentación de VC ++ para COLUMN_ENTRY_STATUS
  • OLE DB tema titulado "Estado" define "DBSTATUS_S_IGNORE"

Para obtener más información

En el siguiente ejemplo de código muestra cómo utilizar esta macro al definir un mapa de descriptor de acceso con Visual C++ 6.0 plantillas de consumidor OLE DB:

Código de ejemplo

   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()

   ...
   };
				
El código para agregar un nuevo registro a la tabla sería similar a lo siguiente:
   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();
				

Acerca de este artículo

Id. de artículo: 194678
Última revisión: domingo, 23 de febrero de 2014
La información de este artículo se refiere a:: Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard, Microsoft Visual C++ .NET 2002 Standard, Microsoft Visual C++ 6.0 Enterprise, Microsoft Visual C++ 6.0 Professional, Microsoft Visual C++, 32-bit Learning Edition 6.0, Microsoft Data Access Components 2.5
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 194678
¿Desea realizar algún comentario sobre este artículo?
 

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.