Klasa CRowset
Hermetyzuje obiekt zestawu wierszy OLE DB i kilka powiązanych interfejsów oraz udostępnia metody manipulowania danymi zestawu wierszy.
Składnia
template <class TAccessor = CAccessorBase>
class CRowset
Parametry
Funkcja TAccessor
Klasa akcesoriów. Wartość domyślna to CAccessorBase
.
Wymagania
Nagłówek: atldbcli.h
Elementy członkowskie
Metody
Nazwa/nazwisko | opis |
---|---|
AddRefRows | Zwiększa liczbę odwołań skojarzona z bieżącym wierszem. |
Zamknij | Zwalnia wiersze i bieżący IRowset interfejs. |
Compare | Porównuje dwie zakładki przy użyciu funkcji IRowsetLocate::Compare. |
CRowset | Tworzy nowy CRowset obiekt i (opcjonalnie) kojarzy go z interfejsem IRowset dostarczonym jako parametr. |
Usuń | Usuwa wiersze z zestawu wierszy przy użyciu elementu IRowsetChange:DeleteRows. |
FindNextRow | Znajduje następny pasujący wiersz po określonej zakładce. |
GetApproximatePosition | Zwraca przybliżoną pozycję wiersza odpowiadającego zakładki. |
GetData | Pobiera dane z kopii wiersza zestawu wierszy. |
GetDataHere | Pobiera dane z określonego buforu. |
GetOriginalData | Pobiera dane ostatnio pobrane ze źródła danych lub przesyłane do źródła danych, ignorując oczekujące zmiany. |
GetRowStatus | Zwraca stan wszystkich wierszy. |
Insert | Tworzy i wstawia nowy wiersz przy użyciu metody IRowsetChange:InsertRow. |
IsSameRow | Porównuje określony wiersz z bieżącym wierszem. |
MoveFirst | Zmienia położenie lokalizacji następnego pobierania do pozycji początkowej. |
MoveLast | Przechodzi do ostatniego rekordu. |
MoveNext | Pobiera dane z następnego wiersza sekwencyjnego lub określoną liczbę pozycji poza następnym wierszem. |
MovePrev | Przechodzi do poprzedniego rekordu. |
MoveToBookmark | Pobiera wiersz oznaczony zakładką lub wiersz z określonym przesunięciem z tej zakładki. |
MoveToRatio | Pobiera wiersze rozpoczynające się od pozycji ułamkowej w zestawie wierszy. |
ReleaseRows | Wywołuje metodę IRowset::ReleaseRows , aby zwolnić bieżący uchwyt wiersza. |
SetData | Ustawia wartości danych w co najmniej jednej kolumnie wiersza przy użyciu funkcji IRowsetChange:SetData. |
Cofnąć | Cofa wszelkie zmiany wprowadzone w wierszu od ostatniego pobrania lub aktualizacji. |
Update | Przesyła wszelkie oczekujące zmiany wprowadzone w bieżącym wierszu od czasu ostatniego pobrania lub aktualizacji. |
UpdateAll | Przesyła wszelkie oczekujące zmiany wprowadzone we wszystkich wierszach od ostatniego pobrania lub aktualizacji. |
Uwagi
W bazie danych OLE zestaw wierszy jest obiektem, za pomocą którego program ustawia i pobiera dane.
Ta klasa nie jest przeznaczona do utworzenia wystąpienia, ale raczej przekazywana jako parametr szablonu do CTable
lub CCommand
(CRowset
jest wartością domyślną).
CRowset::AddRefRows
Wywołuje metodę IRowset::AddRefRows , aby zwiększyć (o jeden) liczbę odwołań skojarzona z bieżącym dojściem wiersza.
Składnia
HRESULT AddRefRows() throw();
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda zwiększa liczbę odwołań dla bieżącego dojścia wiersza. Wywołaj metodę ReleaseRows , aby zdekrementować liczbę. Wiersze zwracane przez metody przenoszenia mają liczbę odwołań.
CRowset::Close
Zwalnia wiersze i bieżący interfejs IRowset .
Składnia
void Close() throw();
Uwagi
Ta metoda zwalnia wszystkie wiersze obecnie w zestawie wierszy.
CRowset::Compare
Porównuje dwie zakładki przy użyciu funkcji IRowsetLocate::Compare.
Składnia
HRESULT Compare(const CBookmarkBase& bookmark1,
const CBookmarkBase& bookmark2,
DBCOMPARE* pComparison) const throw();
Parametry
Zakładka1
[in] Pierwsza zakładka do porównania.
Zakładka2
[in] Druga zakładka do porównania.
pComparison
[out] Wskaźnik do wyniku porównania.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda wymaga opcjonalnego interfejsu IRowsetLocate
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetLocate
wartość VARIANT_TRUE.
Aby uzyskać informacje o korzystaniu z zakładek w użytkownikach, zobacz Korzystanie z zakładek.
CRowset::CRowset
Tworzy nowy CRowset
obiekt i (opcjonalnie) kojarzy go z interfejsem IRowset dostarczonym jako parametr.
Składnia
CRowset();
CRowset(IRowset* pRowset);
Parametry
pRowset
[in] Wskaźnik do interfejsu, który ma być skojarzony z tą klasą IRowset
.
CRowset::Delete
Wywołuje metodę IRowsetChange::D eleteRows , aby usunąć bieżący wiersz z zestawu wierszy.
Składnia
HRESULT Delete() const throw();
Wartość zwracana
Standardowy HRESULT.
CRowset::FindNextRow
Znajduje następny pasujący wiersz po określonej zakładce.
Składnia
HRESULT FindNextRow(DBCOMPAREOP op,
BYTE* pData,
DBTYPE wType,
DBLENGTH nLength,
BYTE bPrecision,
BYTE bScale,
BOOL bSkipCurrent = TRUE,
CBookmarkBase* pBookmark = NULL) throw();
Parametry
Op
[in] Operacja do użycia w porównywaniu wartości wierszy. Aby uzyskać informacje o wartościach, zobacz IRowsetFind::FindNextRow.
pData
[in] Wskaźnik do wartości, która ma być dopasowana.
wType
[in] Wskazuje typ danych części buforu wartości. Aby uzyskać informacje na temat wskaźników typów, zobacz Typy danych w dokumentacji programisty OLE DB w zestawie Windows SDK.
nLength
[in] Długość w bajtach struktury danych konsumenta przydzielonej dla wartości danych. Aby uzyskać szczegółowe informacje, zobacz opis cbMaxLen
struktury DBBINDING w dokumentacji programisty OLE DB.
bPrecision
[in] Maksymalna precyzja używana podczas pobierania danych. Używane tylko wtedy, gdy wType jest DBTYPE_NUMERIC. Aby uzyskać więcej informacji, zobacz Konwersje dotyczące DBTYPE_NUMERIC lub DBTYPE_DECIMAL w dokumentacji programisty OLE DB.
bScale
[in] Skala używana podczas pobierania danych. Używane tylko wtedy, gdy wType jest DBTYPE_NUMERIC lub DBTYPE_DECIMAL. Aby uzyskać więcej informacji, zobacz Konwersje dotyczące DBTYPE_NUMERIC lub DBTYPE_DECIMAL w dokumentacji programisty OLE DB.
bSkipCurrent
[in] Liczba wierszy z zakładki, w której ma być uruchamiane wyszukiwanie.
pBookmark
[in] Zakładka pozycji, w której należy rozpocząć wyszukiwanie.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda wymaga opcjonalnego interfejsu IRowsetFind
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetFind
wartość VARIANT_TRUE.
Aby uzyskać informacje o korzystaniu z zakładek w użytkownikach, zobacz Korzystanie z zakładek.
CRowset::GetApproximatePosition
Zwraca przybliżoną pozycję wiersza odpowiadającego zakładki.
Składnia
HRESULT GetApproximatePosition(const CBookmarkBase* pBookmark,
DBCOUNTITEM* pPosition,
DBCOUNTITEM* pcRows) throw();
Parametry
pBookmark
[in] Wskaźnik do zakładki, który identyfikuje wiersz, którego pozycja ma zostać znaleziona. Wartość NULL, jeśli wymagana jest tylko liczba wierszy.
pPosition
[out] Wskaźnik do lokalizacji, w której GetApproximatePosition
zwraca położenie wiersza. Wartość NULL, jeśli pozycja nie jest wymagana.
pcRows
[out] Wskaźnik do lokalizacji, w której GetApproximatePosition
zwraca całkowitą liczbę wierszy. Wartość NULL, jeśli liczba wierszy nie jest wymagana.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda wymaga opcjonalnego interfejsu IRowsetScroll
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetScroll
wartość VARIANT_TRUE.
Aby uzyskać informacje o korzystaniu z zakładek w użytkownikach, zobacz Korzystanie z zakładek.
CRowset::GetData
Pobiera dane z kopii wiersza zestawu wierszy.
Składnia
HRESULT GetData() throw();
HRESULT GetData(int nAccessor) throw();
Parametry
nAccessor
[in] Numer indeksu (przesunięcie zerowe) metody dostępu do uzyskiwania dostępu do danych.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Jeśli określisz metodę dostępu, która nie jest funkcjami automatycznego dostępu w BEGIN_ACCESSOR, użyj tej metody, aby jawnie pobrać dane, przekazując numer dostępu.
CRowset::GetDataHere
Pobiera dane z bieżącego wiersza i umieszcza je w określonym buforze.
Składnia
HRESULT GetDataHere(int nAccessor,
void* pBuffer) throw();
Parametry
nAccessor
[in] Numer indeksu metody dostępu do użycia do uzyskiwania dostępu do danych.
pBuffer
[out] Bufor, w którym należy umieścić dane dla bieżącego rekordu.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Aby zapoznać się z przykładem używania tej funkcji, zobacz przykład MultiRead.
CRowset::GetOriginalData
Wywołuje metodę IRowsetUpdate::GetOriginalData
pobierania danych ostatnio pobranych z lub przesłanych do źródła danych.
Składnia
HRESULT GetOriginalData() throw();
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda pobiera ostatnio pobrane dane ze źródła danych lub przesyłane do źródła danych; nie pobiera wartości na podstawie oczekujących zmian.
Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate
wartość VARIANT_TRUE.
CRowset::GetRowStatus
Zwraca stan wszystkich wierszy.
Składnia
HRESULT GetRowStatus(DBPENDINGSTATUS* pStatus) const throw();
Parametry
pStatus
[out] Wskaźnik do lokalizacji, w której GetRowStatus
zwraca wartość stanu. Zobacz DBPENDINGSTATUS w dokumentacji programisty OLE DB.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate
wartość VARIANT_TRUE.
CRowset::Insert
Tworzy i inicjuje nowy wiersz przy użyciu danych z metody dostępu.
Składnia
HRESULT Insert(int nAccessor = 0,
bool bGetHRow = false) throw();
Parametry
nAccessor
[in] Liczba metod dostępu używanych do wstawiania danych.
bGetHRow
[in] Wskazuje, czy uchwyt dla wstawionego wiersza jest pobierany.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda wymaga opcjonalnego interfejsu IRowsetChange
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetChange
wartość VARIANT_TRUE.
Wstawianie może zakończyć się niepowodzeniem, jeśli co najmniej jedna kolumna nie jest zapisywalna. Zmodyfikuj mapę kursora, aby to poprawić.
Przykład
W poniższym przykładzie pokazano, jak uzyskać dostęp do źródła danych za pośrednictwem zestawu wierszy, a następnie wstawić ciąg przy użyciu tabeli w tym zestawie wierszy.
Najpierw utwórz klasę tabeli, wstawiając nowy obiekt ATL do projektu. Na przykład kliknij prawym przyciskiem myszy projekt w okienku Obszar roboczy i wybierz pozycję Nowy obiekt ATL. W kategorii Dostęp do danych wybierz pozycję Odbiorca. Utwórz obiekt odbiorcy typu Tabela. (Wybieranie Tabela tworzy zestaw wierszy bezpośrednio z tabeli. Wybranie polecenia powoduje utworzenie zestawu wierszy za pomocą polecenia SQL). Wybierz źródło danych, określając tabelę, za pomocą której chcesz uzyskać dostęp do tego źródła danych. Jeśli wywołasz obiekt odbiorcy CCustomerTable, zaimplementujesz kod wstawiania w następujący sposób:
// Access the rowset using the wizard-generated class, CCustomerTable
CCustomerTable rs; // Your CTable-derived class
// Insert a customer
// Note that for fixed-length fields such as billing ID it isn't necessary
// to set the length
rs.m_BillingID = 5002;
rs.m_dwBillingIDStatus = DBSTATUS_S_OK;
_tcscpy_s(rs.m_ContactFirstName, sizeof(rs.m_ContactFirstName) / sizeof(TCHAR),
_T("Malcolm"));
rs.m_dwContactFirstNameLength = 7;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;
_tcscpy_s(rs.m_L_Name, sizeof(rs.m_L_Name) / sizeof(TCHAR), _T("Reynolds"));
rs.m_dwL_NameLength = 8;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;
rs.m_CustomerID = 2005;
rs.m_dwCustomerIDStatus = DBSTATUS_S_OK;
_tcscpy_s(rs.m_PostalCode, sizeof(rs.m_PostalCode) / sizeof(TCHAR),
_T("34213-4444"));
rs.m_dwPostalCodeLength = 10;
rs.m_dwPostalCodeStatus = DBSTATUS_S_OK;
HRESULT hr = rs.Insert();
if (FAILED(hr))
{
ATLTRACE(_T("Insert failed: 0x%X\n"), hr);
}
CRowset::IsSameRow
Porównuje określony wiersz z bieżącym wierszem.
Składnia
HRESULT IsSameRow(HROW hRow) const throw();
Parametry
hRow
[in] Uchwyt do wiersza, który ma być porównywany z bieżącym wierszem.
Wartość zwracana
Standardowy HRESULT. S_OK wskazuje, że wiersze są takie same. Aby uzyskać inne wartości, zobacz IRowsetIndentity::IsSameRow w dokumentacji programisty OLE DB w zestawie Windows SDK.
CRowset::MoveFirst
Przenosi kursor do początkowej pozycji i pobiera początkowy wiersz.
Składnia
HRESULT MoveFirst() throw();
Wartość zwracana
Standardowy HRESULT.
Uwagi
Wywołuje metodę IRowset::RestartPosition , aby zmienić położenie lokalizacji następnego pobierania do pozycji początkowej (pozycja, która była lokalizacją następnego pobierania po utworzeniu zestawu wierszy) i pobiera początkowy wiersz.
CRowset::MoveLast
Przenosi kursor do ostatniego wiersza.
Składnia
HRESULT MoveLast() throw();
Wartość zwracana
Standardowy HRESULT.
Uwagi
Wywołuje metodę IRowset::RestartPosition , aby zmienić położenie lokalizacji następnego pobierania do ostatniej pozycji i pobiera ostatni wiersz.
Ta metoda wymaga ustawienia DBPROP_CANSCROLLBACKWARDS
VARIANT_TRUE przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy. (Aby uzyskać lepszą wydajność, można również ustawić wartość DBPROP_QUICKRESTART
VARIANT_TRUE).
CRowset::MoveNext
Przenosi kursor do następnego rekordu.
Składnia
HRESULT MoveNext() throw();
HRESULT MoveNext(LONG lSkip,
bool bForward= true) throw();
Parametry
lSkip
[in] Liczba wierszy do pominięcia przed pobraniem.
bForward
[in] Przekaż true
, aby przejść do przodu do następnego rekordu, false
aby przejść do tyłu.
Wartość zwracana
Standardowy HRESULT. Po osiągnięciu końca zestawu wierszy zwraca DB_S_ENDOFROWSET.
Uwagi
Pobiera następny wiersz sekwencyjny z CRowset
obiektu, pamiętając poprzednią pozycję. Opcjonalnie możesz pominąć wiersze lSkip lub przejść do tyłu.
Ta metoda wymaga ustawienia następujących właściwości przed wywołaniem metody Open
w tabeli lub w poleceniu zawierającym zestaw wierszy:
DBPROP_CANSCROLLBACKWARDS
musi być VARIANT_TRUE, jeśli lSkip< 0DBPROP_CANFETCHBACKWARDS
musi być VARIANT_TRUE, jeśli bForward = false
W przeciwnym razie (jeśli lSkip>= 0 i bForward = true), nie trzeba ustawiać żadnych dodatkowych właściwości.
CRowset::MovePrev
Przenosi kursor do poprzedniego rekordu.
Składnia
HRESULT MovePrev() throw();
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda wymaga ustawienia DBPROP_CANFETCHBACKWARDS
lub DBPROP_CANSCROLLBACKWARDS
VARIANT_TRUE przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy.
CRowset::MoveToBookmark
Pobiera wiersz oznaczony zakładką lub wiersz z określonym przesunięciem (lSkip) z tej zakładki.
Składnia
HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
LONG lSkip = 0) throw();
Parametry
bookmark
[in] Zakładka oznaczającą lokalizację, z której chcesz pobrać dane.
lSkip
[in] Liczba wierszy z zakładki do wiersza docelowego. Jeśli lSkip ma wartość zero, pierwszy wiersz pobrany jest wierszem zakładki. Jeśli lSkip ma wartość 1, pierwszy wiersz pobrany jest wierszem po wierszu zakładki. Jeśli lSkip ma wartość -1, pierwszy wiersz pobrany jest wierszem przed wierszem zakładki.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda wymaga opcjonalnego interfejsu IRowsetLocate
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetLocate
wartość VARIANT_TRUE i ustawić DBPROP_CANFETCHBACKWARDS
wartość na VARIANT_TRUE.
Aby uzyskać informacje o korzystaniu z zakładek w użytkownikach, zobacz Korzystanie z zakładek.
CRowset::MoveToRatio
Pobiera wiersze rozpoczynające się od pozycji ułamkowej w zestawie wierszy.
Składnia
HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
DBCOUNTITEM nDenominator,bool bForward = true) throw();
Parametry
nNumerator
[in] Licznik używany do określania pozycji ułamkowej, z której mają być pobierane dane.
nDenominator
[in] Mianownik używany do określania pozycji ułamkowej, z której mają być pobierane dane.
bForward
[in] Wskazuje, czy iść do przodu, czy do tyłu. Wartość domyślna to forward.
Wartość zwracana
Standardowy HRESULT.
Uwagi
MoveToRatio
pobiera wiersze w przybliżeniu do następującej formuły:
(nNumerator * RowsetSize ) / nDenominator
gdzie RowsetSize
to rozmiar zestawu wierszy mierzony w wierszach. Dokładność tej formuły zależy od określonego dostawcy. Aby uzyskać szczegółowe informacje, zobacz IRowsetScroll::GetRowsAtRatio.
Ta metoda wymaga opcjonalnego interfejsu IRowsetScroll
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetScroll
wartość VARIANT_TRUE.
CRowset::ReleaseRows
Wywołuje metodę IRowset::ReleaseRows , aby zwolnić bieżący uchwyt wiersza.
Składnia
HRESULT ReleaseRows() throw();
Wartość zwracana
Standardowy HRESULT.
CRowset::SetData
Ustawia wartości danych w co najmniej jednej kolumnie wiersza.
Składnia
HRESULT SetData() const throw();
HRESULT SetData(int nAccessor) const throw();
Parametry
nAccessor
[in] Liczba metod dostępu używanych do uzyskiwania dostępu do danych.
Wartość zwracana
Standardowy HRESULT.
Uwagi
SetData
W przypadku formularza, który nie akceptuje żadnych argumentów, wszystkie metody dostępu są używane do aktualizowania. Zazwyczaj wywołuje się metodę SetData
ustawiania wartości danych w kolumnach z rzędu, a następnie wywołaj metodę Update , aby przesłać te zmiany.
Ta metoda wymaga opcjonalnego interfejsu IRowsetChange
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetChange
wartość VARIANT_TRUE.
Operacja ustawienia może zakończyć się niepowodzeniem, jeśli co najmniej jedna kolumna nie jest zapisywalna. Zmodyfikuj mapę kursora, aby to poprawić.
CRowset::Undo
Cofa wszelkie zmiany wprowadzone w wierszu od ostatniego pobrania lub aktualizacji.
Składnia
HRESULT Undo(DBCOUNTITEM* pcRows = NULL,
HROW* phRow = NULL,
DBROWSTATUS* pStatus = NULL) throw();
Parametry
pcRows
[out] Wskaźnik do lokalizacji, w której Undo
zwraca liczbę wierszy, które próbował cofnąć, jeśli jest to wymagane.
phRow
[out] Wskaźnik do lokalizacji, w której Undo
zwraca tablicę dojść do wszystkich wierszy, które próbował cofnąć, jeśli jest to wymagane.
pStatus
[out] Wskaźnik do lokalizacji, w której Undo
zwraca wartość stanu wiersza. Jeśli parametr pStatus ma wartość null, nie jest zwracany żaden stan.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate
wartość VARIANT_TRUE.
CRowset::Update
Przesyła wszelkie oczekujące zmiany wprowadzone w bieżącym wierszu od ostatniego pobrania lub Update
wywołania go.
Składnia
HRESULT Update(DBCOUNTITEM* pcRows = NULL,
HROW* phRow = NULL,
DBROWSTATUS* pStatus = NULL) throw();
Parametry
pcRows
[out] Wskaźnik do lokalizacji, w której Update
zwraca liczbę wierszy, które próbował zaktualizować, jeśli jest to wymagane.
phRow
[out] Wskaźnik do lokalizacji, w której Update
zwraca uchwyt wiersza, który próbował zaktualizować. Nie jest zwracana żadna obsługa, jeśli parametr phRow ma wartość null.
pStatus
[out] Wskaźnik do lokalizacji, w której Update
zwraca wartość stanu wiersza. Jeśli parametr pStatus ma wartość null, nie jest zwracany żaden stan.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Przesyła wszelkie oczekujące zmiany wprowadzone w bieżącym wierszu od czasu ostatniego pobrania lub zaktualizowania tego wiersza (przy użyciu Update
lub UpdateAll). Zazwyczaj wywołaj metodę SetData , aby ustawić wartości danych w kolumnach w wierszu, a następnie wywołać metodę Update
w celu przesłania tych zmian.
Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate
wartość VARIANT_TRUE.
CRowset::UpdateAll
Przesyła wszelkie oczekujące zmiany wprowadzone we wszystkich wierszach od ostatniego pobrania lub Update
wywołania.
Składnia
HRESULT UpdateAll(DBCOUNTITEM* pcRows = NULL,
HROW** pphRow = NULL,
DBROWSTATUS** ppStatus = NULL) throw();
Parametry
pcRows
[out] Wskaźnik do lokalizacji, w której UpdateAll
zwraca liczbę wierszy, które próbował zaktualizować, jeśli jest to wymagane.
pphRow
[out] Wskaźnik do pamięci, w którym UpdateAll
zwraca uchwyt wiersza, który próbował zaktualizować. Nie jest zwracana żadna obsługa, jeśli pphRow ma wartość null.
ppStatus
[out] Wskaźnik do lokalizacji, w której Update
zwraca wartość stanu wiersza. Jeśli parametr ppStatus ma wartość null, nie jest zwracany żaden stan.
Uwagi
Przesyła wszelkie oczekujące zmiany wprowadzone we wszystkich wierszach, ponieważ te wiersze zostały ostatnio pobrane lub zaktualizowane przy użyciu aktualizacji lub UpdateAll
. UpdateAll
Zaktualizuje każdy wiersz, który został zmodyfikowany, niezależnie od tego, czy nadal masz dojście do nich (zobacz pphRow), czy nie.
Jeśli na przykład użyto Insert
do wstawienia pięciu wierszy w zestawie wierszy, możesz wywołać Update
je pięć razy lub wywołać UpdateAll
raz, aby zaktualizować je wszystkie.
Ta metoda wymaga opcjonalnego interfejsu IRowsetUpdate
, który może nie być obsługiwany przez wszystkich dostawców. Jeśli tak jest, metoda zwraca E_NOINTERFACE. Przed wywołaniem Open
tabeli lub polecenia zawierającego zestaw wierszy należy również ustawić DBPROP_IRowsetUpdate
wartość VARIANT_TRUE.
Wartość zwracana
Standardowy HRESULT.
Zobacz też
Przykład programu DBViewer
Przykład MultiRead
Przykład atrybutów wielowątków
Szablony konsumentów OLE DB
Szablony konsumentów OLE DB — dokumentacja