Udostępnij przez


Jak Pobieranie kolumny przy użyciu IRow::GetColumns (lub IRow::Open) i ISequentialStream

Duże dane mogą być powiązane lub pobrać za pomocą ISequentialStream interfejs. Dla kolumny związanej Flaga stanu DBSTATUS_S_TRUNCATED wskazuje, że dane są obcięte.

Zakończenie przykładowy kod znajduje się w tym pliku FetchColumns_A.cpp.Możesz pobrać próbką z archiwum Pliki do pobrania program SQL Server strona w witrynie MSDN.

W tym przykładzie został opracowany przy użyciu programu Microsoft Visual C++ 2005.

Poniższy kod tworzy przykładową tabela używane przez aplikację.

USE AdventureWorks
GO

IF EXISTS (SELECT name FROM sysobjects WHERE name = 'MyTable')
     DROP TABLE MyTable
GO

CREATE TABLE MyTable
(
     col1  int,
     col2  varchar(50),
     col3  char(50),
     col4  datetime,
     col5  float,
     col6  money,
     col7  sql_variant,
     col8  binary(50),
     col9  text,
     col10 image
)
GO

/* Enter data. */
INSERT INTO MyTable
values
(
     10,
     'abcdefghijklmnopqrstuvwxyz',
     'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
     '11/1/1999 11:52 AM',
     3.14,
     99.95,
     CONVERT(nchar(50), N'AbCdEfGhIjKlMnOpQrStUvWxYz'),
     0x123456789,
     REPLICATE('AAAAABBBBB', 500),
     REPLICATE(0x123456789, 500)
)
GO
Security noteSecurity Note:

Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.Jeśli uwierzytelnianie systemu Windows nie jest dostępne, monitu użytkowników o wprowadzenie poświadczenia w czasie wykonywania.Należy unikać przechowywania poświadczenia w pliku.Jeśli muszą przetrwać poświadczenia, należy je z zaszyfrować Win32 crypto API.

Do pobierania kolumn przy użyciu IRow::GetColumns (lub IRow::Open) i ISequentialStream

  1. Ustanów połączenie ze źródłem danych.

  2. wykonać polecenia (w tym przykładzie ICommandExecute::Execute() jest wywoływana z IID_IRow).

  3. Pobieranie, używając danych kolumna IRow::Open() lub IRow::GetColumns().

    • IRow::Open() Służy do otwierania ISequentialStream w wierszu. Określ DBGUID_STREAM oznacza, że kolumna zawiera strumień danych binarnych)IStream lub ISequentialStream Następnie można odczytać danych z kolumny).

    • Jeśli IRow::GetColumns() jest używana, pData element konstrukcji DBCOLUMNACCESS ustawiono wskaż obiektu strumienia.

  4. Użycie ISequentialStream::Read() Aby odczytać określoną liczbę bajtów w buforze klienta.

See Also

Other Resources