Procedura: Copia bulk di dati mediante IRowsetFastLoad (OLE DB)
Il consumer notifica a SQLOLEDB la necessità di eseguire una copia bulk impostando su VARIANT_TRUE la proprietà SSPROP_ENABLEFASTLOAD specifica del provider SQLOLEDB. Con la proprietà impostata sull'origine dati, il consumer crea una sessione di SQLOLEDB. La nuova sessione consente al consumer di accedere a IRowsetFastLoad.
In un esempio completo viene illustrato l'utilizzo di IRowsetFastLoad per eseguire una copia bulk dei record in una tabella. In questo esempio vengono aggiunti 10 record alla tabella IRFLTable. È necessario creare la tabella IRFLTable nel database.
Il codice di esempio completo si trova nel file BulkCopyRecords.cpp. È possibile scaricare un archivio contenente l'esempio dalla pagina SQL Server Downloads su MSDN.
L'esempio è stato sviluppato utilizzando Microsoft Visual C++ 2005.
Nota sulla sicurezza |
---|
Se possibile, utilizzare l'autenticazione di Windows. Se non è disponibile, verrà richiesto agli utenti di immettere le credenziali in fase di esecuzione. Evitare di archiviare le credenziali in un file. Se è necessario rendere persistenti le credenziali, è consigliabile crittografarle utilizzando CryptoAPI Win32. |
Per eseguire la copia bulk dei dati in una tabella di SQL Server
Stabilire una connessione all'origine dati.
Impostare su VARIANT_TRUE la proprietà SSPROP_ENABLEFASTLOAD dell'origine dati specifica del provider SQLOLEDB. Grazie a questa impostazione, la sessione appena creata consente al consumer di accedere a IRowsetFastLoad.
Creare una sessione che richiede l'interfaccia IOpenRowset.
Chiamare IOpenRowset::OpenRowset per aprire un set di righe che include tutte le righe della tabella (in cui devono essere copiati i dati utilizzando l'operazione di copia bulk).
Effettuare le associazioni necessarie e creare una funzione di accesso utilizzando IAccessor::CreateAccessor.
Configurare il buffer della memoria dal quale verranno copiati i dati nella tabella.
Chiamare IRowsetFastLoad::InsertRow per eseguire la copia bulk dei dati nella tabella.