IRowsetFastLoad::InsertRow (proveedor OLE DB de Native Client)
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)
Importante
SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). Para nuevos trabajos de desarrollo, no se recomiendan ni el proveedor OLE DB de SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft para SQL Server (SQLOLEDB) heredado. Cambie al nuevo Controlador Microsoft OLE DB para SQL Server de ahora en adelante.
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
SQLNCLI11 no ha podido 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.
Comentarios
Un error al convertir los datos de consumidor en el tipo de datos de SQL Server para una columna provoca un E_FAIL devolución del proveedor OLE DB de SQL Server Native Client. 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 del proveedor OLE DB de SQL Server Native Client son de solo escritura. El proveedor OLE DB de SQL Server Native Client no expone ningún método que permita la consulta de consumidor del 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 se establece de forma predeterminada para cualquier conexión realizada a través del proveedor OLE DB de SQL Server Native Client.