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 IRowsetLocatefacoltativa , 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 IRowsetFindfacoltativa , 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 IRowsetScrollfacoltativa , 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 IRowsetUpdatefacoltativa , 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 IRowsetUpdatefacoltativa , 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 IRowsetChangefacoltativa , 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< 0

  • DBPROP_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 IRowsetLocatefacoltativa , 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 IRowsetScrollfacoltativa , 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 IRowsetChangefacoltativa , 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 IRowsetUpdatefacoltativa , 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 IRowsetUpdatefacoltativa , 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 IRowsetUpdatefacoltativa , 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