Jak Pobieranie kolumny przy użyciu IRow::GetColumns (OLE DB)
The IRow interfejs allows direct access to columns of a single row in the zestaw wyników. W ten sposób IRow to skuteczny sposób w celu pobrania danych od zestaw wyników o jeden wiersz.
Przykładowy kod źródłowy jest dostępna ta showshow pobrać przy użyciu pojedynczego wiersza IRow. W tym przykładzie jedną kolumna w czas jest pobierana z wiersza.Pokazuje przykładowy:
Jak pobrać grupy kolumn (w kolejności).
Jak dostępu kolumna dwukrotnie.Po raz pierwszy uzyskuje się szerokość kolumna rzeczywistych, a później dostępu do rzeczywistych danych.W strukturze DBCOLUMNACCESS Jeśli pData jest NULL, a cbMaxLen wynosi 0, wywołanie IRow->GetColumns() Zwraca tylko długości kolumna rzeczywistych. W takim przypadek IRow->GetColumns() może zostać wywołany ponownie na tej samej kolumnie w celu pobrania danych rzeczywistych.
Zakończenie przykładowy kod znajduje się w pliku FetchColumns_B.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 FetchColumns_B.cpp.
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
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
![]() |
---|
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. |
Aby pobrać kolumn przy użyciu IRow::GetColumns
Ustanów połączenie ze źródłem danych.
wykonać polecenia (w poniższym przykładzie ICommandExecute::wykonać() nosi z IID_IRow).
wykonać IRow::GetColumns() pobrać jednego lub kilku kolumn w wierszu wynikowe.Jeśli chcesz znaleźć rozmiar rzeczywisty kolumna przed pobieranie danych, zestaw pData w DBCOLUMNACCESS wartości null.Wywołanie IRow::GetColumns() zwraca tylko szerokość kolumna.Inne wywołanie IRow::GetColumns() będzie pobierać dane.
IRow::GetColumns() należy wykonać, dopóki wszystkie kolumny, potrzebne są dostępne.Kolumny muszą być dostępne w sekwencji.