Share via


IRowsetFastLoad::InsertRow (provider OLE DB di Native Client)

Si applica a:SQL ServerDatabase SQL diAzure Istanzagestita di SQL di Azure Azure Synapse Analytics PlatformSystem (PDW)

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e SQL Server Management Studio 19 (SSMS). Non è consigliabile usare sia il provider OLE DB SQL Server Native Client (SQLNCLI o SQLNCLI11) che il provider Microsoft OLE DB legacy per SQL Server (SQLOLEDB). Passare al nuovo Microsoft OLE DB Driver (MSOLEDBSQL) per SQL Server in futuro.

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
SQLNCLI11 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 durante la conversione dei dati consumer nel tipo di dati di SQL Server per una colonna determina la restituzione di un E_FAIL dal provider OLE DB di SQL Server Native Client. 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 di copia bulk del provider OLE DB di SQL Server Native Client sono di sola scrittura. Il provider OLE DB di SQL Server Native Client non espone metodi che consentono la query 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 è impostata per impostazione predefinita per qualsiasi connessione effettuata tramite il provider OLE DB di SQL Server Native Client.

Vedi anche

IRowsetFastLoad (OLE DB)