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
Initialiseert de bulk-kopieerstructuur, voert foutcontroles uit, controleert of de bestandsnamen van data en formaat correct zijn, en opent deze vervolgens.
Syntaxis
HRESULT BCPInit(
const wchar_t *pwszTable,
const wchar_t *pwszDataFile,
const wchar_t *pwszErrorFile,
int eDirection);
Opmerkingen
De BCPInit-methode moet worden aangeroepen vóór elke andere bulk-copy methode. De BCPInit-methode voert de benodigde initialisaties uit voor een bulkkopie van data tussen het werkstation en de SQL Server.
De BCPInit-methode onderzoekt de structuur van de databasebron of doeltabel, niet het databestand. Het specificeert gegevensformaatwaarden voor het databestand op basis van elke kolom in de databasetabel, weergave of SELECT-resultaatset. Deze specificatie omvat het datatype van elke kolom, de aanwezigheid of afwezigheid van een lengte- of nulindicator en terminatorbyte-strings in de data, en de breedte van datatypes met vaste lengte. De BCPInit-methode stelt deze waarden als volgt in:
Het gespecificeerde datatype is het datatype van de kolom in de databasetabel, weergave of SELECT-resultaatset. Het datatype wordt opgesomd door SQL Server native datatypes gespecificeerd in het OLE DB Driver for SQL Server headerbestand (msoledbsql.h). Hun waarden volgen het patroon van BCP_TYPE_XXX. De data wordt weergegeven in computervorm. Dat wil zeggen, gegevens uit een kolom van gehele datatype worden weergegeven door een vierbyte-reeks die big- of little-endian is, gebaseerd op de computer die het databestand heeft gemaakt.
Als een database-datatype vast is in lengte, is de databestandsdata ook vast in lengte. Bulk-copy methoden die data verwerken (bijvoorbeeld IBCPSession::BCPExec) parsen datarijen in de verwachting dat de lengte van de data in het databestand identiek is aan de lengte van de data die in de databasetabel, weergave of SELECT-kolomlijst is gespecificeerd. Bijvoorbeeld, gegevens voor een databasekolom gedefinieerd als
char(13)moeten worden weergegeven door 13 tekens voor elke rij data in het bestand. Gegevens met vaste lengte kunnen worden voorafgegaan door een nulindicator als de databasekolom nulwaarden toestaat.Bij het kopiëren van data naar SQL Server moet het databestand gegevens bevatten voor elke kolom in de databasetabel. Bij het kopiëren van data van SQL Server worden gegevens uit alle kolommen in de databasetabel, weergave of SELECT-resultaatset gekopieerd naar het databestand.
Bij het kopiëren van data naar SQL Server moet de ordinaalpositie van een kolom in het databestand identiek zijn aan de ordinaalpositie van de kolom in de databasetabel. Bij het kopiëren van gegevens van SQL Server plaatst de BCPExec-methode gegevens op basis van de ordinaalpositie van de kolom in de databasetabel.
Als een database-datatype variabel is in lengte (bijvoorbeeld
varbinary(22)) of als een databasekolom nullwaarden kan bevatten, wordt de data in het databestand voorafgegaan door een lengte/nul-indicator. De breedte van de indicator varieert afhankelijk van het datatype en de versie van de bulkkopie. De IBCPSession::BCPControl-methode biedt BCP_OPTION_FILEFMT compatibiliteit tussen eerdere bulkkopie-databestanden en servers die op latere versies van SQL Server draaien door aan te geven wanneer de breedte van indicatoren in de data smaller is dan verwacht.
Opmerking
Om de gegevensformaatwaarden voor een databestand te wijzigen, gebruik je de methoden IBCPSession::BCPColumns en IBCPSession::BCPColFmt .
Bulkkopieën naar SQL Server kunnen worden geoptimaliseerd voor tabellen die geen indexen bevatten door de databaseoptie select into/bulkcopy in te stellen.
Arguments
pwszTable[in]
De naam van de databasetabel die in of uit gekopieerd moet worden. De naam kan de databasenaam of de eigenaar bevatten. Bijvoorbeeld, "pubs.username.titles", "pubs.. titels", "gebruikersnaam.titels".
Als het eDirection-argument is ingesteld op BCP_DIRECTION_OUT, kan het pwszTable-argument de naam zijn van een databaseweergave.
Als het eDirection-argument is ingesteld op BCP_DIRECTION_OUT en een SELECT-instructie wordt gespecificeerd met de BCPControl-methode voordat de BCPExec-methode wordt aangeroepen, moet het pwszTable-argument op NULL worden gezet.
pwszDataFile[in]
De naam van het gebruikersbestand dat in of uit gekopieerd moet worden.
pwszErrorFile[in]
De naam van het foutbestand dat gevuld moest worden met voortgangsberichten, foutmeldingen en kopieën van rijen die niet van een gebruikersbestand naar een tabel konden worden gekopieerd. Als het pwszErrorFile-argument op NULL is gezet, wordt er geen foutbestand gebruikt.
eDirection[in]
De richting van de kopieeroperatie, ofwel BCP_DIRECTION_IN of BCP_DIRECTION _OUT. BCP_DIRECTION _IN duidt een kopie aan van een gebruikersbestand naar een databasetabel; BCP_DIRECTION _OUT duidt een kopie aan van een databasetabel naar een gebruikersbestand.
Retourcodewaarden
S_OK
De methode slaagde.
E_FAIL
Er is een provider-specifieke fout opgetreden' voor gedetailleerde informatie, gebruik de ISQLServerErrorInfo-interface .
E_OUTOFMEMORY
Fout uit het geheugen.
E_INVALIDARG
Een of meer argumenten waren niet correct gespecificeerd. Bijvoorbeeld, er werd een ongeldige bestandsnaam gegeven.