Delen via


IBCPSession::BCPExec (OLE DB)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

OLE DB-stuurprogramma downloaden

Voert de bulkkopie-operatie uit.

Syntaxis

  
HRESULT BCPExec(   
      DBROWCOUNT *pRowsCopied);  

Opmerkingen

De BCPExec-methode kopieert gegevens van een gebruikersbestand naar een databasetabel of omgekeerd, afhankelijk van de waarde van de eDirection-parameter die wordt gebruikt met de IBCPSession::BCPInit-methode .

Voordat je BCPExec aanroept, roep je de BCPInit-methode aan met een geldige gebruikersbestandsnaam. Als dit niet wordt gedaan, ontstaat er een fout. De enige uitzondering is als een query wordt gebruikt voor een bulk copy out-operatie. In dat geval specificeer NULL voor de tabelnaam in de BCPInit-methode en specificeer vervolgens de query met de BCP_OPTION_HINTS-optie.

De BCPExec-methode is de enige bulk-kopieermethode die waarschijnlijk gedurende enige tijd uitvalt. Het is daarom de enige bulkkopieermethode die asynchrone modus ondersteunt. Om asynchrone modus te gebruiken, stel je de provider-specifieke sessieeigenschap SSPROP_ASYNCH_BULKCOPY in op VARIANT_TRUE voordat je de BCPExec-methode aanroept. Deze eigenschap is beschikbaar in de DBPROPSET_SQLSERVERSESSION property set. Om de voltooiing te testen, roep je de BCPExec-methode aan met dezelfde parameters. Als de bulkkopie nog niet is voltooid, geeft de BCPExec-methode DB_S_ASYNCHRONOUS terug. In het pRowsCopied-argument geeft het ook een statustelling terug van het aantal rijen dat naar of ontvangen is van de server. Rijen die naar de server worden gestuurd, worden pas vastgelegd nadat het einde van een batch is bereikt.

Arguments

pRowsGekopieerd[uit]
Een aanwijzer naar een DWORD. De BCPExec-methode vult het DWORD met het aantal succesvol gekopieerde rijen. Als het pRowsCopied-argument op NULL is gezet, wordt het genegeerd door de BCPExec-methode .

Retourcodewaarden

S_OK
De methode slaagde.

E_FAIL
Er is een providerspecifieke fout opgetreden; gebruik de interface ISQLServerErrorInfo voor gedetailleerde informatie.

E_UNEXPECTED
De aanroep van de methode was onverwacht. Bijvoorbeeld, de BCPInit-methode werd niet aangeroepen voordat deze methode werd aangeroepen. Gebeurt ook als de operatie is afgebroken via de BCP_OPTION_ABORT-optie, en de BCPExec-methode daarna is aangeroepen.

E_OUTOFMEMORY
Fout uit het geheugen.

DB_S_ENDOFROWSET
De bulkkopie-operatie was voltooid en alle gegevensoverdracht was voltooid.

DB_S_ASYNCHRONOUS
De huidige reeks rijen is gekopieerd. Roep de BCPExec-methode opnieuw aan om de volgende batch over te zetten.

DB_S_ERRORSOCCURRED
Fouten deden zich voor tijdens de bulkkopie-operatie en sommige rijen waren mogelijk niet gekopieerd. Het aantal fouten is nog steeds lager dan het maximaal toegestane aantal fouten.

Zie ook

IBCPSession (OLE DB)
Uitvoeren van bulkkopiebewerkingen