Udostępnij za pośrednictwem


Jak Zbiorcze kopiowanie danych przy użyciu IRowsetFastLoad (OLE DB)

Konsument zawiadomi SQLOLEDB jego potrzebę zbiorczego kopiowania przez ustawienie właściwość specyficzne dla dostawca SQLOLEDB SSPROP_ENABLEFASTLOAD wartość inna niż VARIANT_TRUE.Ustaw na danych z właściwością źródło, konsument tworzy sesja SQLOLEDB.Nowa sesja umożliwia dostęp konsumentów do IRowsetFastLoad.

Zakończenie próbki jest dostępna, ilustruje użycie IRowsetFastLoad masowego kopiowania rekordów do tabela.W tym przykładzie 10 rekordów są dodawane do tabela IRFLTable.Należy utworzyć tabela IRFLTable w bazie danych.

Zakończenie przykładowy kod znajduje się w pliku BulkCopyRecords.cpp.Można pobrać archiwum zawierające próbki z Pobierania programu SQL Server strona w witrynie MSDN.

Próbka ta została opracowana przy użyciu programu Microsoft Visual C++ 2005.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.Jeśli uwierzytelnianie systemu Windows nie jest dostępne, Monituj użytkownikom wprowadzanie poświadczeń przy uruchomieniu czas.Unikaj przechowywania poświadczenia w pliku.Jeśli poświadczenia muszą zostać zachowane, należy zaszyfrować je z Win32 crypto API.

Aby kopiowanie masowe danych do tabela programu SQL Server

  1. Ustanów połączenie z danymi źródło.

  2. Ustaw właściwość Źródło danych specyficznych dla dostawca SQLOLEDB SSPROP_ENABLEFASTLOAD wartość inna niż VARIANT_TRUE.Z tą właściwośćą zestaw wartość inna niż VARIANT_TRUE, nowo utworzony sesja umożliwia dostęp konsumentów do IRowsetFastLoad.

  3. Utwórz żądanie sesja IOpenRowset interfejs.

  4. Wywołanie IOpenRowset::OpenRowset otworzyć zestawu zestaw wierszy, która obejmuje wszystkie wiersze z tabela (w którym dane mają być kopiowane za pomocą operacji zbiorczego kopiowania).

  5. Wykonaj niezbędne powiązania i utworzyć metoda dostępu za pomocą IAccessor::CreateAccessor.

  6. Ustawienie buforu pamięci, z którego zostaną skopiowane dane do tabela.

  7. Wywołanie IRowsetFastLoad::InsertRow do kopiowanie masowe dane w tabela.