Condividi tramite


IRowsetFastLoad::InsertRow (OLE DB)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)

Download del driver OLE DB

Aggiunge una riga al set di righe della copia bulk. Per gli esempi, vedere Eseguire una copia bulk dei dati usando IRowsetFastLoad (OLE DB) e Inviare dati BLOB a SQL Server usando IROWSETFASTLOAD e ISEQUENTIALSTREAM (OLE DB).

Sintassi

  
HRESULT InsertRow(  
      HACCESSOR hAccessor,  
      void* pData);  

Argomenti

hAccessor[in]
Handle della funzione di accesso che definisce i dati delle righe per la copia bulk. La funzione di accesso a cui viene fatto riferimento è una funzione di accesso di riga, che specifica l'associazione alla memoria del consumer contenente valori di dati.

pData[in]
Puntatore alla memoria del consumer contenente valori di dati. Per altre informazioni, vedere le strutture DBBINDING.

Valori del codice restituito

S_OK
Il metodo è riuscito. I valori di stato associati per tutte le colonne hanno il valore DBSTATUS_S_OK o DBSTATUS_S_NULL.

E_FAIL
Si è verificato un errore. Le informazioni sull'errore sono disponibili nelle interfacce degli errori del set di righe.

E_INVALIDARG
L'argomento pData è stato impostato su un puntatore NULL.

E_OUTOFMEMORY
MSOLEDBSQL non è stato in grado di allocare memoria sufficiente per completare la richiesta.

E_UNEXPECTED
Il metodo è stato chiamato su un set di righe della copia bulk precedentemente invalidato dal metodo IRowsetFastLoad::Commit.

DB_E_BADACCESSORHANDLE
L'argomento hAccessor specificato dal consumer non è valido.

DB_E_BADACCESSORTYPE
La funzione di accesso specificata non è una funzione di accesso di riga o non specifica la memoria del consumer.

Osservazioni:

Un errore di conversione dei dati del consumer nel tipo di dati di SQL Server per una colonna causa la restituzione di E_FAIL da parte del driver OLE DB per SQL Server. I dati possono essere trasmessi a SQL Server con qualsiasi metodo InsertRow o solo con il metodo Commit. L'applicazione consumer può chiamare il metodo InsertRow diverse volte usando i dati errati prima di ricevere un avviso relativo all'errore di conversione del tipo di dati. Poiché il metodo Commit verifica che tutti i dati vengano specificati correttamente dal consumer, se necessario, il consumer può usare Commit in modo appropriato per convalidare i dati.

I set di righe della copia bulk di OLE DB Driver per SQL Server sono di sola scrittura. OLE DB Driver per SQL Server non espone alcun metodo che consenta la specifica di query di tipo consumer del set di righe. Per terminare l'elaborazione, il consumer può rilasciare il riferimento all'interfaccia IRowsetFastLoad senza chiamare il metodo Commit. Non sono disponibili funzioni per accedere alle righe inserite dal consumer nel set di righe e modificarne i valori o per rimuoverle singolarmente dal set di righe.

Le righe oggetto di copia bulk vengono formattate sul server per SQL Server. Le opzioni eventualmente impostate per la connessione o per la sessione, ad esempio ANSI_PADDING, influiscono sul formato di riga. Questa opzione viene attivata per impostazione predefinita per qualsiasi connessione stabilita tramite OLE DB Driver per SQL Server.

Vedi anche

IRowsetFastLoad (OLE DB)