Compartir vía


IRowsetFastLoad::InsertRow (OLE DB)

Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)

Descargar controlador OLE DB

Agrega una fila al conjunto de filas de copia masiva. Para ver ejemplos, consulte Copiar datos de forma masiva mediante IRowsetFastLoad (OLE DB) y Enviar datos de blob a SQL Server mediante IROWSETFASTLOAD e ISEQUENTIALSTREAM (OLE DB).

Sintaxis

  
HRESULT InsertRow(  
      HACCESSOR hAccessor,  
      void* pData);  

Argumentos

hAccessor[in]
El identificador del descriptor de acceso que define los datos de fila para la copia masiva. El descriptor de acceso al que se hace referencia es un descriptor de acceso de fila, que enlaza la memoria propia del consumidor que contiene los valores de datos.

pData[in]
Puntero a la memoria propia del consumidor que contiene los valores de datos. Para obtener más información, vea Estructuras DBBINDING.

Valores de código de retorno

S_OK
El método se ha llevado a cabo de forma correcta. Los valores de estado enlazados de todas las columnas tienen el valor DBSTATUS_S_OK o DBSTATUS_S_NULL.

E_FAIL
Se produjo un error. Hay información disponible sobre el error en las interfaces de error del conjunto de filas.

E_INVALIDARG
El argumento pData se estableció en un puntero NULL.

E_OUTOFMEMORY
MSOLEDBSQL no pudo asignar la memoria suficiente para completar la solicitud.

E_UNEXPECTED
Se ha llamado al método en un conjunto de filas de copia masiva previamente invalidado por el método IRowsetFastLoad::Commit.

DB_E_BADACCESSORHANDLE
El argumento hAccessor proporcionado por el consumidor no era válido.

DB_E_BADACCESSORTYPE
El descriptor de acceso especificado no era un descriptor de acceso de fila o no especificaba la memoria propia del consumidor.

Observaciones

Un error al convertir los datos del consumidor al tipo de datos de SQL Server de una columna hace que el controlador OLE DB para SQL Server devuelva E_FAIL. Los datos se pueden transmitir a SQL Server en cualquier método InsertRow o solo en el método Commit. La aplicación de consumidor puede llamar al método InsertRow muchas veces con datos erróneos antes de recibir el aviso de que existe un error de conversión de tipo de datos. Dado que el método Commit asegura que el consumidor especifica correctamente todos los datos, este último puede utilizar el método Commit adecuadamente para validar los datos según sea necesario.

Los conjuntos de filas de copia masiva de OLE DB Driver for SQL Server son de solo escritura. OLE DB Driver for SQL Server no expone ningún método que permita al consumidor consultar el conjunto de filas. Para finalizar el procesamiento, el consumidor puede liberar su referencia en la interfaz IRowsetFastLoad sin llamar al método Commit. No hay recursos para obtener acceso a una fila insertada por el consumidor en el conjunto de filas y cambiar sus valores o quitarla individualmente del conjunto de filas.

Se da formato a las filas de copia masiva en el servidor para SQL Server. Las opciones que se hayan establecido para la conexión o sesión, como ANSI_PADDING, afectan al formato de fila. Esta opción está activada de forma predeterminada para las conexiones realizadas a través de OLE DB Driver for SQL Server.

Consulte también

IRowsetFastLoad (OLE DB)