Classe COleDBRecordView
Visualizzazione che mostra i record del database nei controlli.
Sintassi
class COleDBRecordView : public CFormView
Membri
Costruttori protetti
Nome | Descrizione |
---|---|
COleDBRecordView::COleDBRecordView | Costruisce un oggetto COleDBRecordView . |
Metodi pubblici
Nome | Descrizione |
---|---|
COleDBRecordView::OnGetRowset | Restituisce un valore HRESULT standard. |
COleDBRecordView::OnMove | Aggiorna il record corrente (se dirty) nell'origine dati e quindi passa al record specificato (successivo, precedente, primo o ultimo). |
Osservazioni:
La visualizzazione è una visualizzazione modulo direttamente connessa a un CRowset
oggetto . La visualizzazione viene creata da una risorsa modello di finestra di dialogo e visualizza i campi dell'oggetto CRowset
nei controlli del modello di finestra di dialogo. L'oggetto COleDBRecordView
usa lo scambio di dati della finestra di dialogo (DDX) e la funzionalità di spostamento integrata in CRowset
per automatizzare lo spostamento dei dati tra i controlli nel modulo e i campi del set di righe. COleDBRecordView
fornisce inoltre un'implementazione predefinita per il passaggio al primo, successivo, precedente o ultimo record e un'interfaccia per l'aggiornamento del record attualmente in visualizzazione.
È possibile usare le funzioni DDX con COleDbRecordView
per ottenere dati direttamente dal recordset di database e visualizzarli in un controllo finestra di dialogo. È consigliabile usare i DDX_*
metodi (ad esempio DDX_Text
), non le DDX_Field*
funzioni (ad esempio DDX_FieldText
) con COleDbRecordView
. DDX_FieldText
non funzionerà con COleDbRecordView
perché DDX_FieldText
accetta un argomento aggiuntivo di tipo CRecordset*
(per CRecordView
) o CDaoRecordset*
(per CDaoRecordView
).
Nota
Se si usano le classi DAO (Data Access Objects) anziché le classi del modello di consumer OLE DB, usare invece la classe CDaoRecordView . Per altre informazioni, vedere l'articolo Panoramica: Programmazione del database.
COleDBRecordView
tiene traccia della posizione dell'utente nel set di righe in modo che la visualizzazione record possa aggiornare l'interfaccia utente. Quando l'utente passa a una delle estremità del set di righe, la visualizzazione record disabilita gli oggetti dell'interfaccia utente, ad esempio le voci di menu o i pulsanti della barra degli strumenti, per spostarsi ulteriormente nella stessa direzione.
Per altre informazioni sulle classi di set di righe, vedere l'articolo Uso dei modelli di consumer OLE DB.
Gerarchia di ereditarietà
COleDBRecordView
Requisiti
Intestazione: afxoledb.h
COleDBRecordView::COleDBRecordView
Costruisce un oggetto COleDBRecordView
.
COleDBRecordView(LPCTSTR lpszTemplateName);
COleDBRecordView(UINT nIDTemplate);
Parametri
lpszTemplateName
Contiene una stringa con terminazione Null che corrisponde al nome di una risorsa modello di dialogo.
nIDTemplate
Contiene il numero ID di una risorsa modello di dialogo.
Osservazioni:
Quando si crea un oggetto di un tipo derivato da COleDBRecordView
, richiamare uno dei costruttori per creare l'oggetto view e identificare la risorsa della finestra di dialogo su cui si basa la vista. È possibile identificare la risorsa in base al nome (passare una stringa come argomento al costruttore) o tramite il relativo ID (passare un intero senza segno come argomento).
Nota
La classe derivata deve fornire il proprio costruttore. Nel costruttore richiamare il costruttore , COleDBRecordView::COleDBRecordView
con il nome della risorsa o l'ID come argomento.
COleDBRecordView::OnGetRowset
Restituisce un handle per l'oggetto CRowset<> associato alla visualizzazione record.
virtual CRowset<>* OnGetRowset() = 0;
Valore restituito
Valore HRESULT standard.
Osservazioni:
È necessario eseguire l'override di questa funzione membro per costruire o ottenere un oggetto set di righe e restituirvi un handle. Se si dichiara la classe di visualizzazione record con ClassWizard, la procedura guidata scrive automaticamente un override predefinito. L'implementazione predefinita di ClassWizard restituisce l'handle del set di righe archiviato nella visualizzazione record, se presente. In caso contrario, crea un oggetto set di righe del tipo specificato con ClassWizard e chiama la relativa Open
funzione membro per aprire la tabella o eseguire la query, quindi restituisce un handle all'oggetto .
Nota
In precedenza a MFC 7.0, OnGetRowset
restituiva un puntatore a CRowset
. Se si dispone di codice che chiama OnGetRowset
, è necessario modificare il tipo restituito alla classe templatizzata CRowset<>.
Esempio
CFrameWnd* pFrame = (CFrameWnd*)AfxGetMainWnd();
COleDBRecordView* pView = (COleDBRecordView*)pFrame->GetActiveView();
// CProductAccessor is a user-defined accessor class
CRowset<CAccessor<CProductAccessor>>* pRowSet =
(CRowset<CAccessor<CProductAccessor>>*)pView->OnGetRowset();
Per altre informazioni ed esempi, vedere l'articolo Visualizzare record: uso di una visualizzazione record.
COleDBRecordView::OnMove
Passa a un record diverso nel set di righe e visualizza i relativi campi nei controlli della visualizzazione record.
virtual BOOL OnMove(UINT nIDMoveCommand);
Parametri
nIDMoveCommand
Uno dei valori ID comando standard seguenti:
ID_RECORD_FIRST : consente di passare al primo record del recordset.
ID_RECORD_LAST : consente di passare all'ultimo record del recordset.
ID_RECORD_NEXT : consente di passare al record successivo nel recordset.
ID_RECORD_PREV : consente di passare al record precedente nel recordset.
Valore restituito
Diverso da zero se lo spostamento ha avuto esito positivo; in caso contrario, 0 se la richiesta di spostamento è stata negata.
Osservazioni:
L'implementazione predefinita chiama la funzione membro appropriata Move
dell'oggetto CRowset
associato alla visualizzazione record.
Per impostazione predefinita, OnMove
aggiorna il record corrente nell'origine dati se l'utente lo ha modificato nella visualizzazione record.
La Creazione guidata applicazione crea una risorsa di menu con le voci di menu First Record, Last Record, Next Record e Previous Record. Se si seleziona l'opzione Barra degli strumenti ancorabile, la Creazione guidata applicazione crea anche una barra degli strumenti con pulsanti corrispondenti a questi comandi.
Se si passa oltre l'ultimo record del recordset, la visualizzazione record continua a visualizzare l'ultimo record. Se si passa all'indietro oltre il primo record, la visualizzazione record continua a visualizzare il primo record.