CDaoRecordset::AddNew
Llame a esta función miembro para agregar un nuevo registro a un conjunto de registros de tabla-tipo o de tipo dinámico.
virtual void AddNew( );
Comentarios
Los campos del registro son inicialmente Null. (En términos de base de datos, Null significa “no tener ningún valor” y no es igual que NULL en C++). Para completar la operación, se debe llamar a la función miembro de Update . Update guarda los cambios en el origen de datos.
Advertencia
Si edita un registro y después se mueve a otro registro sin llamar a Update, los cambios se pierden sin advertencia.
Si agrega un registro a un conjunto de registros de tipo dinámico llamando a AddNew, el registro está visible en el conjunto de registros y se incluye en la tabla base donde se vuelve visible para cualquier nuevo objeto de CDaoRecordset .
La posición del nuevo registro depende del tipo de conjunto de registros:
En un conjunto de registros de tipo dinámico, donde se inserta el nuevo registro no se puede garantizar. Este comportamiento cambiado con Microsoft Jet 3,0 por motivos de rendimiento y simultaneidad. Si el objetivo es crear el registro recién agregado el registro actual, obtenga el marcador del registro de la última modificación y desplácese al marcador:
rs.SetBookmark(rs.GetLastModifiedBookmark());
En un conjunto de registros de tabla-tipo que se ha especificado un índice, los registros se devuelven en el lugar adecuado del criterio de ordenación. Si no se ha especificado ningún índice, los nuevos registros se devuelven al final del conjunto de registros.
El registro que era actual antes de que se utiliza AddNew permanece actual. Si desea crear la actual del nuevo registro y el conjunto de registros admite marcadores, llamada SetBookmark el marcador identificado por el valor de las propiedades de LastModified del objeto de conjunto de registros subyacente de DAO. El procedimiento es útil para determinar el valor de los campos de contadores (de incremento automático) en un registro agregado. Para obtener más información, vea GetLastModifiedBookmark.
Si las transacciones de las compatibilidad con bases de datos, puede crear la parte de la llamada de AddNew de una transacción. Para obtener más información sobre transacciones, vea la clase CDaoWorkspace. Observe que debe llamar CDaoWorkspace:: BeginTrans antes de llamar a AddNew.
No es válido llamar a AddNew para un conjunto de registros cuya función miembro de Abrir no se ha llamado. Se produce CDaoException si llama a AddNew para un conjunto de registros que no pueda ser anexado. Puede determinar si el conjunto de registros es actualizable llamando a CanAppend.
El marco marca los miembros de datos de campo modificados para asegurarse de que se escribirá en el registro en el origen de datos mediante el mecanismo de intercambio de campos del registro de DAO (DFX). Cambiar el valor de un campo establece normalmente el campo modificado automáticamente, por lo que deberá raramente llamar SetFieldDirty personalmente, pero es posible que a veces desee asegurarse de que las columnas explícitamente se actualizarán o inline independientemente del valor está en el miembro de datos de campo. el mecanismo de DFX también emplea el uso de PSEUDO NULL OF INFO. Para obtener más información, vea CDaoFieldExchange:: m_nOperation.
Si el mecanismo de doble búfer no se usa, después cambiar el valor del campo no restablece automáticamente el campo como modificado. En este caso, será necesario establecer explícitamente el campo modificado. El mensaje contenido en m_bCheckCacheForDirtyFields controla este comprobación automática de campo.
Nota
Si doble-se almacenan en búfer los registros (es decir, la comprobación automática de campo está habilitada), llamando a CancelUpdate restablecerá a las variables miembro los valores que tenían antes de que AddNew o Editar se denomina.
Para obtener información relacionada, vea los temas “método de AddNew”, “método de CancelUpdate”, “propiedad de LastModified”, y “propiedad de EditMode” en la Ayuda de DAO.
Requisitos
encabezado: afxdao.h