Delen via


IBCPSession::BCPControl (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

Stelt de opties in voor een bulk-copy operatie.

Syntaxis

  
HRESULT BCPControl(   
      int eOption,  
      void *iValue);  

Opmerkingen

De BCPControl-methode stelt verschillende controleparameters in voor bulk-copy operaties, waaronder het aantal fouten dat is toegestaan voordat een bulkkopie wordt geannuleerd, het aantal eerste en laatste rijen die uit een databestand moeten worden gekopieerd, en de batchgrootte.

Deze methode wordt ook gebruikt om de SELECT-instructie te specificeren die gebruikt moet worden bij het bulkkopiëren van data uit SQL Server. Je kunt het eOption-argument instellen op BCP_OPTION_HINTS en het iValue-argument om een verwijzing te hebben naar een brede tekenreeks met de SELECT-instructie.

Mogelijke waarden voor eOption zijn:

Optie Description
BCP_OPTION_ABORT Stopt een bulk-kopieeroperatie die al bezig is. Je kunt de BCPControl-methode aanroepen met een eOption-argument van BCP_OPTION_ABORT van een andere thread om een lopende bulk-copy operatie te stoppen. Het iValue-argument wordt genegeerd.
BCP_OPTION_BATCH Het aantal rijen per batch. De standaard is 0, wat alle rijen in een tabel aangeeft wanneer data wordt geëxtraheerd, of alle rijen in het gebruikersdatabestand wanneer data wordt gekopieerd naar SQL Server. Een waarde kleiner dan 1 zet BCP_OPTION_BATCH terug naar de standaardwaarde.
BCP_OPTION_DELAYREADFMT Een Booleaan, als deze op waar staat, zorgt ervoor dat IBCPSession::BCPReadFmt bij uitvoering wordt gelezen. Als het niet klopt (de standaard), zal IBCPSession::BCPReadFmt het formateerbestand onmiddellijk lezen. Er zal een sequentiefout optreden als BCP_OPTION_DELAYREADFMT waar is en je IBCPSession::BCPColumns of IBCPSession::BCPColFmt aanroept.

Er zal ook een sequentiefout optreden als je IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)FALSE)) na het aanroepen IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)TRUE) en IBCPSession::BCPWriteFmt.

Voor meer informatie, zie Metadata Discovery.
BCP_OPTION_FILECP Het iValue-argument bevat het nummer van de codepagina voor het databestand. Je kunt het nummer van de codepagina opgeven, zoals 1252 of 850, of een van de volgende waarden:

BCP_FILECP_ACP: gegevens in het bestand staan in de Microsoft Windows-codepagina van de client.

BCP_FILECP_OEMCP: de gegevens in het bestand staan in de OEM-codepage van de client (standaard).

BCP_FILECP_RAW: de gegevens in het bestand staan in de codepagina van SQL Server.
BCP_OPTION_FILEFMT Het versienummer van het databestandsformaat. Dit kan 80 (SQL Server 2000 (8.x)), 90 (SQL Server 2005 (9.x)), 100 (SQL Server 2008 (10.0.x) of SQL Server 2008 R2 (10.50.x)) of 110 (SQL Server 2012 (11.x)) zijn. 110 is de standaard. Dit is handig voor het exporteren en importeren van data in formaten die door eerdere versies van de server werden ondersteund. Om bijvoorbeeld gegevens te importeren die afkomstig zijn van een tekstkolom in een SQL Server 2000 (8.x) server naar een varchar(max) -kolom in een SQL Server 2005 (9.x) of latere server, moet je 80 specificeren. Evenzo, als je 80 specificeert bij het exporteren van gegevens uit een varchar(max) -kolom, worden deze opgeslagen zoals tekstkolommen worden opgeslagen in het SQL Server 2000 (8.x)-formaat, en kunnen ze worden geïmporteerd in een tekstkolom van een SQL Server 2000 (8.x)-server.
BCP_OPTION_FIRST De eerste rij gegevens van het bestand of de tabel die gekopieerd moet worden. De standaard is 1; een waarde kleiner dan 1 zet deze optie terug naar de standaard.
BCP_OPTION_FIRSTEX Voor BCP-outoperaties specificeert het de eerste rij van de databasetabel die naar het databestand wordt gekopieerd.

Voor BCP in bewerkingen specificeert de eerste rij van het databestand die naar de databasetabel wordt gekopieerd.

De iValue-parameter wordt verwacht het adres te zijn van een getekend 64-bits geheel getal dat de waarde bevat. De maximale waarde die aan BCPFIRSTEX 2^63-1 kan worden doorgegeven.
BCP_OPTION_FMTXML Gebruikt om aan te geven dat het gegenereerde bestandsformaat in een XML-formaat moet zijn. Het staat standaard uit en de opmaakbestanden worden opgeslagen als tekstbestanden. Het XML-formaat bestand biedt meer flexibiliteit, maar met enkele extra beperkingen. Je kunt bijvoorbeeld niet tegelijkertijd het prefix en de terminator voor een veld opgeven, wat mogelijk is in oudere bestandsformaten.

Opmerking: Voor OLE DB Driver 18.6.0 werden XML-bestanden alleen ondersteund wanneer SQL Server-tools samen met de OLE DB Driver voor SQL Server werden geïnstalleerd.
BCP_OPTION_HINTS Het iValue-argument bevat een brede tekenstringpointer. De geadresseerde string specificeert ofwel SQL Server bulkcopy-verwerkingshints of een Transact-SQL-instructie die een resultaatset teruggeeft. Als een Transact-SQL-instructie wordt gespecificeerd die meer dan één resultaatset teruggeeft, worden alle resultaatsets na de eerste genegeerd.
BCP_OPTION_KEEPIDENTITY Wanneer het iValue-argument op TRUE is gezet, specificeert deze optie dat de bulk-kopieermethoden gegevenswaarden invoegen die zijn geleverd voor SQL Server-kolommen die met een identiteitsbeperking zijn gedefinieerd. Het invoerbestand moet waarden leveren voor de identiteitskolommen. Als dit niet is ingesteld, worden nieuwe identiteitswaarden gegenereerd voor de ingevoegde rijen. Alle gegevens die aanwezig zijn in het bestand voor de identiteitskolommen worden genegeerd.
BCP_OPTION_KEEPNULLS Geeft aan of lege datawaarden in het bestand worden omgezet naar NULL-waarden in de SQL Server-tabel. Wanneer het iValue-argument op TRUE wordt gezet, worden lege waarden in de SQL Server-tabel omgezet naar NULL. De standaard is dat lege waarden worden omgezet naar een standaardwaarde voor de kolom in de SQL Server-tabel als er een standaard bestaat.
BCP_OPTION_LAST De laatste rij om te kopiëren. De standaard is om alle rijen te kopiëren. Een waarde kleiner dan 1 zet deze optie terug naar de standaard.
BCP_OPTION_LASTEX Voor BCP-uitgangsoperaties specificeert de laatste rij van de databasetabel die naar het databestand wordt gekopieerd.

Voor BCP in bewerkingen specificeert het de laatste rij van het databestand die naar de databasetabel moet worden gekopieerd.

De iValue-parameter wordt verwacht het adres te zijn van een getekend 64-bits geheel getal dat de waarde bevat. De maximale waarde die aan BCPLASTEX kan worden doorgegeven is 2^63-1.
BCP_OPTION_MAXERRS Het aantal fouten dat is toestaan voordat de bulk-kopieeroperatie mislukt. De standaardwaarde is 10. Een waarde kleiner dan 1 zet deze optie terug naar de standaard. Bulkkopieën leggen maximaal 65.535 fouten op. Een poging om deze optie op een waarde groter dan 65.535 te zetten, resulteert in een optiepercentage op 65.535.
BCP_OPTION_ROWCOUNT Geeft het aantal rijen terug dat door de huidige (of laatste) BCP-bewerking is beïnvloed.
BCP_OPTION_TEXTFILE Het databestand is geen binair bestand, maar een tekstbestand. BCP doet de detectie of het tekstbestand Unicode is of niet door de Unicode-bytemarker in de eerste 2 bytes van het databestand te controleren.
BCP_OPTION_UNICODEFILE Wanneer ingesteld op TRUE, geeft deze optie aan dat het invoerbestand een Unicode-bestandsformaat is.

Arguments

eOption[in]
Stel je in op een van de opties die hierboven in de opmerkingensectie staan.

iValue[in]
De waarde voor de gespecificeerde eOption. Het iValue-argument is een integerwaarde die naar een void-pointer wordt gecast om toekomstige uitbreiding naar 64-bits waarden mogelijk te maken.

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 IBCPSession::BCPInit-methode werd niet aangeroepen voordat deze functie werd aangetrokken.

E_OUTOFMEMORY
Fout uit het geheugen.

Zie ook

IBCPSession (OLE DB)
Uitvoeren van bulkkopiebewerkingen