Classe CRowset
Incapsula un oggetto set di righe OLE DB e diverse interfacce correlate e fornisce metodi di manipolazione per i dati del set di righe.
Sintassi
template <class TAccessor = CAccessorBase>
class CRowset
Parametri
TAccessor
Classe della funzione di accesso. Il valore predefinito è CAccessorBase
.
Requisiti
Intestazione: atldbcli.h
Membri
Metodi
Nome | Descrizione |
---|---|
AddRefRows | Incrementa il conteggio dei riferimenti associato alla riga corrente. |
Chiudi | Rilascia righe e l'interfaccia corrente IRowset . |
Confronta | Confronta due segnalibri usando IRowsetLocate::Compare. |
CRowset | Crea un nuovo CRowset oggetto e (facoltativamente) lo associa a un'interfaccia IRowset fornita come parametro. |
CANC | Elimina le righe dal set di righe usando IRowsetChange:DeleteRows. |
FindNextRow | Trova la riga corrispondente successiva dopo il segnalibro specificato. |
GetApproximatePosition | Restituisce la posizione approssimativa di una riga corrispondente a un segnalibro. |
GetData | Recupera i dati dalla copia del set di righe della riga. |
GetDataHere | Recupera i dati dal buffer specificato. |
GetOriginalData | Recupera i dati recuperati o trasmessi all'origine dati più di recente, ignorando le modifiche in sospeso. |
GetRowStatus | Restituisce lo stato di tutte le righe. |
Insert | Crea e inserisce una nuova riga usando IRowsetChange:InsertRow. |
IsSameRow | Confronta la riga specificata con la riga corrente. |
MoveFirst | Riposiziona la posizione di recupero successivo alla posizione iniziale. |
MoveLast | Passa all'ultimo record. |
MoveNext | Recupera i dati dalla riga sequenziale successiva o da un numero specificato di posizioni oltre la riga successiva. |
MovePrev | Passa al record precedente. |
MoveToBookmark | Recupera la riga contrassegnata da un segnalibro o dalla riga in corrispondenza di un offset specificato da tale segnalibro. |
MoveToRatio | Recupera le righe a partire da una posizione frazionaria nel set di righe. |
ReleaseRows | Chiama IRowset::ReleaseRows per rilasciare l'handle di riga corrente. |
SetData | Imposta i valori di dati in una o più colonne di una riga usando IRowsetChange:SetData. |
Annulla | Annulla le modifiche apportate a una riga dall'ultimo recupero o aggiornamento. |
Aggiornamento | Trasmette tutte le modifiche in sospeso apportate alla riga corrente dall'ultimo recupero o aggiornamento. |
UpdateAll | Trasmette tutte le modifiche in sospeso apportate a tutte le righe dall'ultimo recupero o aggiornamento. |
Osservazioni:
In OLE DB un set di righe è l'oggetto tramite il quale un programma imposta e recupera i dati.
Questa classe non deve essere creata un'istanza, ma passata come parametro di modello a CTable
o CCommand
(CRowset
è l'impostazione predefinita).
CRowset::AddRefRows
Chiama IRowset::AddRefRows per incrementare (di uno) il conteggio dei riferimenti associato all'handle di riga corrente.
Sintassi
HRESULT AddRefRows() throw();
Valore restituito
HRESULT standard.
Osservazioni:
Questo metodo incrementa il conteggio dei riferimenti per l'handle di riga corrente. Chiamare ReleaseRows per decrementare il conteggio. Le righe restituite dai metodi di spostamento hanno un numero di riferimenti pari a uno.
CRowset::Close
Rilascia le righe e l'interfaccia IRowset corrente.
Sintassi
void Close() throw();
Osservazioni:
Questo metodo rilascia tutte le righe attualmente presenti nel set di righe.
CRowset::Compare
Confronta due segnalibri usando IRowsetLocate::Compare.
Sintassi
HRESULT Compare(const CBookmarkBase& bookmark1,
const CBookmarkBase& bookmark2,
DBCOMPARE* pComparison) const throw();
Parametri
Segnalibro1
[in] Primo segnalibro da confrontare.
Segnalibro2
[in] Secondo segnalibro da confrontare.
pComparison
[out] Puntatore al risultato del confronto.
Valore restituito
HRESULT standard.
Osservazioni:
Questo metodo richiede l'interfaccia IRowsetLocate
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetLocate
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
Per informazioni sull'uso di segnalibri nei consumer, vedere Uso di segnalibri.
CRowset::CRowset
Crea un nuovo CRowset
oggetto e (facoltativamente) lo associa a un'interfaccia IRowset fornita come parametro.
Sintassi
CRowset();
CRowset(IRowset* pRowset);
Parametri
pRowset
[in] Puntatore a un'interfaccia IRowset
da associare a questa classe.
CRowset::Delete
Chiama IRowsetChange::D eleteRows per eliminare la riga corrente dal set di righe.
Sintassi
HRESULT Delete() const throw();
Valore restituito
HRESULT standard.
CRowset::FindNextRow
Trova la riga corrispondente successiva dopo il segnalibro specificato.
Sintassi
HRESULT FindNextRow(DBCOMPAREOP op,
BYTE* pData,
DBTYPE wType,
DBLENGTH nLength,
BYTE bPrecision,
BYTE bScale,
BOOL bSkipCurrent = TRUE,
CBookmarkBase* pBookmark = NULL) throw();
Parametri
op
[in] Operazione da utilizzare per confrontare i valori di riga. Per i valori, vedere IRowsetFind::FindNextRow.
pData
[in] Puntatore al valore da associare.
wType
[in] Indica il tipo di dati della parte del valore del buffer. Per informazioni sugli indicatori di tipo, vedere Tipi di dati nella guida di riferimento per programmatori OLE DB in Windows SDK.
nLength
[in] Lunghezza, in byte, della struttura dei dati consumer allocata per il valore di dati. Per informazioni dettagliate, vedere la descrizione di cbMaxLen
in Strutture DBBINDING nella Guida di riferimento per programmatori OLE DB.
bPrecision
[in] Precisione massima utilizzata per il recupero dei dati. Utilizzato solo se wType è DBTYPE_NUMERIC. Per altre informazioni, vedere Conversioni che coinvolgono DBTYPE_NUMERIC o DBTYPE_DECIMAL nella guida di riferimento per programmatori OLE DB.
bScale
[in] Scala usata per il recupero dei dati. Utilizzato solo se wType è DBTYPE_NUMERIC o DBTYPE_DECIMAL. Per altre informazioni, vedere Conversioni che coinvolgono DBTYPE_NUMERIC o DBTYPE_DECIMAL nella guida di riferimento per programmatori OLE DB.
bSkipCurrent
[in] Numero di righe dal segnalibro in corrispondenza del quale avviare una ricerca.
pBookmark
[in] Segnalibro per la posizione in cui avviare una ricerca.
Valore restituito
HRESULT standard.
Osservazioni:
Questo metodo richiede l'interfaccia IRowsetFind
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetFind
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
Per informazioni sull'uso di segnalibri nei consumer, vedere Uso di segnalibri.
CRowset::GetApproximatePosition
Restituisce la posizione approssimativa di una riga corrispondente a un segnalibro.
Sintassi
HRESULT GetApproximatePosition(const CBookmarkBase* pBookmark,
DBCOUNTITEM* pPosition,
DBCOUNTITEM* pcRows) throw();
Parametri
pBookmark
[in] Puntatore a un segnalibro che identifica la riga la cui posizione deve essere trovata. NULL se è necessario solo il numero di righe.
pPosition
[out] Puntatore alla posizione in cui GetApproximatePosition
restituisce la posizione della riga. NULL se la posizione non è obbligatoria.
pcRows
[out] Puntatore alla posizione in cui GetApproximatePosition
restituisce il numero totale di righe. NULL se il numero di righe non è obbligatorio.
Valore restituito
HRESULT standard.
Osservazioni:
Questo metodo richiede l'interfaccia IRowsetScroll
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetScroll
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
Per informazioni sull'uso di segnalibri nei consumer, vedere Uso di segnalibri.
CRowset::GetData
Recupera i dati dalla copia del set di righe della riga.
Sintassi
HRESULT GetData() throw();
HRESULT GetData(int nAccessor) throw();
Parametri
nAccessor
[in] Numero di indice (offset zero) della funzione di accesso da usare per l'accesso ai dati.
Valore restituito
HRESULT standard.
Osservazioni:
Se si specifica una funzione di accesso che non è un accesso automatico in BEGIN_ACCESSOR, utilizzare questo metodo per ottenere in modo esplicito i dati passando il numero di funzione di accesso.
CRowset::GetDataHere
Recupera i dati dalla riga corrente e lo inserisce nel buffer specificato.
Sintassi
HRESULT GetDataHere(int nAccessor,
void* pBuffer) throw();
Parametri
nAccessor
[in] Numero di indice della funzione di accesso da utilizzare per l'accesso ai dati.
pBuffer
[out] Buffer in cui inserire i dati per il record corrente.
Valore restituito
HRESULT standard.
Osservazioni:
Per un esempio di come usare questa funzione, vedere l'esempio MultiRead.
CRowset::GetOriginalData
Chiama IRowsetUpdate::GetOriginalData
per recuperare i dati recuperati o trasmessi all'origine dati più di recente.
Sintassi
HRESULT GetOriginalData() throw();
Valore restituito
HRESULT standard.
Osservazioni:
Questo metodo recupera i dati recuperati o trasmessi più di recente all'origine dati; non recupera i valori in base alle modifiche in sospeso.
Questo metodo richiede l'interfaccia IRowsetUpdate
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetUpdate
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
CRowset::GetRowStatus
Restituisce lo stato di tutte le righe.
Sintassi
HRESULT GetRowStatus(DBPENDINGSTATUS* pStatus) const throw();
Parametri
pStatus
[out] Puntatore a una posizione in cui GetRowStatus
restituisce il valore di stato. Vedere DBPENDINGSTATUS nella guida di riferimento per programmatori OLE DB.
Valore restituito
HRESULT standard.
Osservazioni:
Questo metodo richiede l'interfaccia IRowsetUpdate
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetUpdate
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
CRowset::Insert
Crea e inizializza una nuova riga usando i dati della funzione di accesso.
Sintassi
HRESULT Insert(int nAccessor = 0,
bool bGetHRow = false) throw();
Parametri
nAccessor
[in] Numero della funzione di accesso da utilizzare per l'inserimento dei dati.
bGetHRow
[in] Indica se viene recuperato l'handle per la riga inserita.
Valore restituito
HRESULT standard.
Osservazioni:
Questo metodo richiede l'interfaccia IRowsetChange
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetChange
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
L'inserimento potrebbe non riuscire se una o più colonne non sono scrivibili. Modificare la mappa del cursore per risolvere il problema.
Esempio
Nell'esempio seguente viene illustrato come accedere a un'origine dati tramite un set di righe e quindi inserire una stringa usando una tabella in tale set di righe.
Creare prima di tutto una classe di tabella inserendo un nuovo oggetto ATL nel progetto. Ad esempio, fare clic con il pulsante destro del mouse sul progetto nel riquadro Area di lavoro e scegliere Nuovo oggetto ATL. Nella categoria Accesso ai dati selezionare Consumer. Creare un oggetto consumer di tipo Table. (Selezione La tabella crea un set di righe direttamente dalla tabella. Se si seleziona Comando, viene creato un set di righe tramite un comando SQL. Selezionare un'origine dati, specificando una tabella tramite cui accedere all'origine dati. Se si chiama l'oggetto consumer CCustomerTable, è necessario implementare il codice di inserimento come indicato di seguito:
// 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
Confronta la riga specificata con la riga corrente.
Sintassi
HRESULT IsSameRow(HROW hRow) const throw();
Parametri
hRow
[in] Handle della riga da confrontare con la riga corrente.
Valore restituito
HRESULT standard. S_OK indica che le righe sono uguali. Per altri valori, vedere IRowsetIndentity::IsSameRow nella guida di riferimento per programmatori OLE DB in Windows SDK.
CRowset::MoveFirst
Sposta il cursore nella posizione iniziale e recupera la riga iniziale.
Sintassi
HRESULT MoveFirst() throw();
Valore restituito
HRESULT standard.
Osservazioni:
Chiama IRowset::RestartPosition per riposizionare la posizione di recupero successivo alla posizione iniziale (la posizione in cui si trovava il percorso di recupero successivo al momento della creazione del set di righe) e recupera la riga iniziale.
CRowset::MoveLast
Sposta il cursore sull'ultima riga.
Sintassi
HRESULT MoveLast() throw();
Valore restituito
HRESULT standard.
Osservazioni:
Chiama IRowset::RestartPosition per riposizionare la posizione di recupero successivo all'ultima posizione e recupera l'ultima riga.
Per questo metodo è necessario impostare su DBPROP_CANSCROLLBACKWARDS
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe. Per ottenere prestazioni migliori, è anche possibile impostare DBPROP_QUICKRESTART
su VARIANT_TRUE.
CRowset::MoveNext
Sposta il cursore sul record successivo.
Sintassi
HRESULT MoveNext() throw();
HRESULT MoveNext(LONG lSkip,
bool bForward= true) throw();
Parametri
lSkip
[in] Numero di righe da ignorare prima del recupero.
bForward
[in] Passare true
per passare al record successivo, false
per spostarsi all'indietro.
Valore restituito
HRESULT standard. Quando è stata raggiunta la fine del set di righe, restituisce DB_S_ENDOFROWSET.
Osservazioni:
Recupera la riga sequenziale successiva dall'oggetto CRowset
, memorizzando la posizione precedente. Facoltativamente, è possibile scegliere di ignorare le righe lSkip o spostarsi all'indietro.
Questo metodo richiede di impostare le proprietà seguenti prima di chiamare Open
la tabella o il comando contenente il set di righe:
DBPROP_CANSCROLLBACKWARDS
deve essere VARIANT_TRUE se lSkip< 0DBPROP_CANFETCHBACKWARDS
deve essere VARIANT_TRUE se bForward = false
In caso contrario (se lSkip>= 0 e bForward = true), non è necessario impostare proprietà aggiuntive.
CRowset::MovePrev
Sposta il cursore sul record precedente.
Sintassi
HRESULT MovePrev() throw();
Valore restituito
HRESULT standard.
Osservazioni:
Per questo metodo è necessario impostare DBPROP_CANFETCHBACKWARDS
o DBPROP_CANSCROLLBACKWARDS
su VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
CRowset::MoveToBookmark
Recupera la riga contrassegnata da un segnalibro o dalla riga in corrispondenza di un offset specificato (lSkip) da tale segnalibro.
Sintassi
HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
LONG lSkip = 0) throw();
Parametri
bookmark
[in] Segnalibro che contrassegna la posizione da cui si desidera recuperare i dati.
lSkip
[in] Numero di righe dal segnalibro alla riga di destinazione. Se lSkip è zero, la prima riga recuperata è la riga con segnalibro. Se lSkip è 1, la prima riga recuperata è la riga dopo la riga con segnalibro. Se lSkip è -1, la prima riga recuperata è la riga prima della riga con segnalibro.
Valore restituito
HRESULT standard.
Osservazioni:
Questo metodo richiede l'interfaccia IRowsetLocate
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare DBPROP_IRowsetLocate
su VARIANT_TRUE e impostare su DBPROP_CANFETCHBACKWARDS
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
Per informazioni sull'uso di segnalibri nei consumer, vedere Uso di segnalibri.
CRowset::MoveToRatio
Recupera le righe a partire da una posizione frazionaria nel set di righe.
Sintassi
HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
DBCOUNTITEM nDenominator,bool bForward = true) throw();
Parametri
nNumerator
[in] Numeratore utilizzato per determinare la posizione frazionaria da cui recuperare i dati.
nDenominator
[in] Denominatore utilizzato per determinare la posizione frazionaria da cui recuperare i dati.
bForward
[in] Indica se spostarsi avanti o indietro. Il valore predefinito è forward.
Valore restituito
HRESULT standard.
Osservazioni:
MoveToRatio
recupera le righe in base approssimativamente alla formula seguente:
(nNumerator * RowsetSize ) / nDenominator
dove RowsetSize
è la dimensione del set di righe, misurata in righe. L'accuratezza di questa formula dipende dal provider specifico. Per informazioni dettagliate, vedere IRowsetScroll::GetRowsAtRatio.
Questo metodo richiede l'interfaccia IRowsetScroll
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetScroll
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
CRowset::ReleaseRows
Chiama IRowset::ReleaseRows per rilasciare l'handle di riga corrente.
Sintassi
HRESULT ReleaseRows() throw();
Valore restituito
HRESULT standard.
CRowset::SetData
Imposta i valori di dati in una o più colonne di una riga.
Sintassi
HRESULT SetData() const throw();
HRESULT SetData(int nAccessor) const throw();
Parametri
nAccessor
[in] Numero della funzione di accesso da usare per l'accesso ai dati.
Valore restituito
HRESULT standard.
Osservazioni:
Per il SetData
modulo che non accetta argomenti, vengono utilizzate tutte le funzioni di accesso per l'aggiornamento. In genere si chiama SetData
per impostare i valori dei dati nelle colonne di una riga, quindi chiamare Update per trasmettere tali modifiche.
Questo metodo richiede l'interfaccia IRowsetChange
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetChange
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
L'operazione di impostazione potrebbe non riuscire se una o più colonne non sono scrivibili. Modificare la mappa del cursore per risolvere il problema.
CRowset::Undo
Annulla le modifiche apportate a una riga dall'ultimo recupero o aggiornamento.
Sintassi
HRESULT Undo(DBCOUNTITEM* pcRows = NULL,
HROW* phRow = NULL,
DBROWSTATUS* pStatus = NULL) throw();
Parametri
pcRows
[out] Puntatore alla posizione in cui Undo
restituisce il numero di righe che ha tentato di annullare, se necessario.
phRow
[out] Puntatore alla posizione in cui Undo
restituisce una matrice di handle a tutte le righe che ha tentato di annullare, se necessario.
pStatus
[out] Puntatore alla posizione in cui Undo
restituisce il valore dello stato della riga. Non viene restituito alcuno stato se pStatus è null.
Valore restituito
HRESULT standard.
Osservazioni:
Questo metodo richiede l'interfaccia IRowsetUpdate
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetUpdate
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
CRowset::Update
Trasmette tutte le modifiche in sospeso apportate alla riga corrente dopo l'ultima operazione di recupero o Update
chiamata.
Sintassi
HRESULT Update(DBCOUNTITEM* pcRows = NULL,
HROW* phRow = NULL,
DBROWSTATUS* pStatus = NULL) throw();
Parametri
pcRows
[out] Puntatore alla posizione in cui Update
restituisce il numero di righe che ha tentato di aggiornare, se necessario.
phRow
[out] Puntatore alla posizione in cui Update
restituisce l'handle della riga che ha tentato di aggiornare. Non viene restituito alcun handle se phRow è null.
pStatus
[out] Puntatore alla posizione in cui Update
restituisce il valore dello stato della riga. Non viene restituito alcuno stato se pStatus è null.
Valore restituito
HRESULT standard.
Osservazioni:
Trasmette tutte le modifiche in sospeso apportate alla riga corrente dopo l'ultimo recupero o aggiornamento della riga (utilizzando Update
o UpdateAll). In genere si chiama SetData per impostare i valori dei dati nelle colonne di una riga e quindi chiamare Update
per trasmettere tali modifiche.
Questo metodo richiede l'interfaccia IRowsetUpdate
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetUpdate
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
CRowset::UpdateAll
Trasmette tutte le modifiche in sospeso apportate a tutte le righe dall'ultima operazione di recupero o Update
chiamata.
Sintassi
HRESULT UpdateAll(DBCOUNTITEM* pcRows = NULL,
HROW** pphRow = NULL,
DBROWSTATUS** ppStatus = NULL) throw();
Parametri
pcRows
[out] Puntatore alla posizione in cui UpdateAll
restituisce il numero di righe che ha tentato di aggiornare, se necessario.
pphRow
[out] Puntatore alla memoria in cui UpdateAll
restituisce l'handle della riga che ha tentato di aggiornare. Non viene restituito alcun handle se pphRow è null.
ppStatus
[out] Puntatore alla posizione in cui Update
restituisce il valore dello stato della riga. Non viene restituito alcuno stato se ppStatus è null.
Osservazioni:
Trasmette tutte le modifiche in sospeso apportate a tutte le righe dall'ultimo recupero o aggiornamento di tali righe tramite Update o UpdateAll
. UpdateAll
aggiornerà ogni riga modificata, indipendentemente dal fatto che l'handle sia ancora disponibile (vedere pphRow) o meno.
Ad esempio, se è stato usato Insert
per inserire cinque righe in un set di righe, è possibile chiamare cinque volte o chiamare Update
UpdateAll
una volta per aggiornarli tutti.
Questo metodo richiede l'interfaccia IRowsetUpdate
facoltativa , che potrebbe non essere supportata in tutti i provider. In questo caso, il metodo restituisce E_NOINTERFACE. È inoltre necessario impostare su DBPROP_IRowsetUpdate
VARIANT_TRUE prima di chiamare Open
la tabella o il comando contenente il set di righe.
Valore restituito
HRESULT standard.
Vedi anche
Esempio di DBViewer
Esempio multiread
Esempio di attributi multiread
Modelli di consumer OLE DB
Riferimenti ai modelli consumer OLE DB