Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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.