Classe CDaoRecordView
Visualizzazione che mostra i record del database nei controlli.
Nota
DAO è supportato tramite Office 2013. DAO 3.6 è la versione finale ed è considerata obsoleta.
Sintassi
class AFX_NOVTABLE CDaoRecordView : public CFormView
Membri
Costruttori protetti
Nome | Descrizione |
---|---|
CDaoRecordView::CDaoRecordView | Costruisce un oggetto CDaoRecordView . |
Metodi pubblici
Nome | Descrizione |
---|---|
CDaoRecordView::IsOnFirstRecord | Restituisce un valore diverso da zero se il record corrente è il primo record nell'oggetto recordset associato. |
CDaoRecordView::IsOnLastRecord | Restituisce un valore diverso da zero se il record corrente è l'ultimo record nell'oggetto recordset associato. |
CDaoRecordView::OnGetRecordset | Restituisce un puntatore a un oggetto di una classe derivata da CDaoRecordset . ClassWizard esegue l'override di questa funzione automaticamente e crea il recordset, se necessario. |
CDaoRecordView::OnMove | Se il record corrente è stato modificato, lo aggiorna nell'origine dati, quindi passa al record specificato (successivo, precedente, primo o ultimo). |
Osservazioni:
La visualizzazione è una visualizzazione modulo direttamente connessa a un CDaoRecordset
oggetto . La visualizzazione viene creata da una risorsa modello di finestra di dialogo e visualizza i campi dell'oggetto CDaoRecordset
nei controlli del modello di finestra di dialogo. L'oggetto CDaoRecordView
utilizza lo scambio di dati di dialogo (DDX) e lo scambio di campi di record DAO (DFX) per automatizzare lo spostamento dei dati tra i controlli nel modulo e i campi del recordset. CDaoRecordView
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.
Nota
Le classi di database DAO sono distinte dalle classi di database MFC basate su ODBC (Open Database Connectivity). Tutti i nomi delle classi di database DAO hanno il prefisso "CDao". È comunque possibile accedere alle origini dati ODBC con le classi DAO; Le classi DAO offrono in genere funzionalità superiori perché usano il motore di database Microsoft Jet.
Il modo più comune per creare la visualizzazione record consiste nell'Applicazione guidata. La Creazione guidata applicazione crea sia la classe di visualizzazione record che la classe recordset associata come parte dell'applicazione di base scheletro.
Se è sufficiente un singolo modulo, l'approccio della Procedura guidata dell'applicazione è più semplice. ClassWizard consente di decidere di usare una visualizzazione record in un secondo momento nel processo di sviluppo. Se non si crea la classe di visualizzazione record con la Creazione guidata applicazione, è possibile crearla in un secondo momento con ClassWizard. L'uso di ClassWizard per creare una visualizzazione record e un recordset separatamente e quindi connetterli è l'approccio più flessibile perché offre un maggiore controllo nella denominazione della classe recordset e del relativo . H/. File CPP. Questo approccio consente anche di avere più visualizzazioni record nella stessa classe recordset.
Per semplificare lo spostamento degli utenti finali dal record al record nella visualizzazione record, la Creazione guidata applicazione crea risorse del menu (e facoltativamente della barra degli strumenti) per passare al primo, successivo, precedente o ultimo record. Se si crea una classe di visualizzazione record con ClassWizard, è necessario creare queste risorse manualmente con gli editor di menu e bitmap.
Per informazioni sull'implementazione predefinita per lo spostamento da record a record, vedere IsOnFirstRecord
e IsOnLastRecord
l'articolo Uso di una visualizzazione record, applicabile sia a che CDaoRecordView
a CRecordView
.
CDaoRecordView
tiene traccia della posizione dell'utente nel recordset in modo che la visualizzazione record possa aggiornare l'interfaccia utente. Quando l'utente passa a una delle estremità del recordset, 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 sulla dichiarazione e sull'uso delle classi di record e recordset, vedere "Progettazione e creazione di una visualizzazione record" nell'articolo Visualizzazioni record. Per altre informazioni sul funzionamento delle visualizzazioni dei record e su come usarle, vedere l'articolo Uso di una visualizzazione record. Tutti gli articoli indicati in precedenza si applicano sia a che CDaoRecordView
a CRecordView
.
Gerarchia di ereditarietà
CDaoRecordView
Requisiti
Intestazione: afxdao.h
CDaoRecordView::CDaoRecordView
Quando si crea un oggetto di un tipo derivato da CDaoRecordView
, chiamare una delle due forme del costruttore per inizializzare l'oggetto visualizzazione e identificare la risorsa della finestra di dialogo su cui si basa la vista.
explicit CDaoRecordView(LPCTSTR lpszTemplateName);
explicit CDaoRecordView(UINT nIDTemplate);
Parametri
lpszTemplateName
Contiene una stringa con terminazione Null che corrisponde al nome di una risorsa modello di finestra di dialogo.
nIDTemplate
Contiene il numero ID di una risorsa modello di finestra di dialogo.
Osservazioni:
È 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). È consigliabile usare un ID risorsa.
Nota
La classe derivata deve fornire il proprio costruttore. Nel costruttore della classe derivata chiamare il costruttore CDaoRecordView::CDaoRecordView
con il nome o l'ID della risorsa come argomento.
CDaoRecordView::OnInitialUpdate
chiama CWnd::UpdateData
, che chiama CWnd::DoDataExchange
. Questa chiamata iniziale per DoDataExchange
connette CDaoRecordView
i controlli (indirettamente) ai CDaoRecordset
membri dati dei campi creati da ClassWizard. Questi membri dati non possono essere usati fino a quando non si chiama la funzione membro della classe CFormView::OnInitialUpdate
di base.
Nota
Se si usa ClassWizard, la procedura guidata definisce un enum
valore CDaoRecordView::IDD
nella dichiarazione di classe e lo usa nell'elenco di inizializzazione dei membri per il costruttore.
CMyDaoRecordView::CMyDaoRecordView()
: CDaoRecordView(CMyDaoRecordView::IDD)
{
m_pSet = NULL;
// TODO: add construction code here
}
CDaoRecordView::IsOnFirstRecord
Chiamare questa funzione membro per determinare se il record corrente è il primo record nell'oggetto recordset associato a questa visualizzazione record.
BOOL IsOnFirstRecord();
Valore restituito
Diverso da zero se il record corrente è il primo record nel recordset; in caso contrario, 0.
Osservazioni:
Questa funzione è utile per scrivere implementazioni personalizzate dei gestori di aggiornamento dei comandi predefiniti scritti da ClassWizard.
Se l'utente passa al primo record, il framework disabilita tutti gli oggetti dell'interfaccia utente (ad esempio, voci di menu o pulsanti della barra degli strumenti) per passare al primo o al record precedente.
CDaoRecordView::IsOnLastRecord
Chiamare questa funzione membro per determinare se il record corrente è l'ultimo record nell'oggetto recordset associato a questa visualizzazione record.
BOOL IsOnLastRecord();
Valore restituito
Diverso da zero se il record corrente è l'ultimo record nel recordset; in caso contrario, 0.
Osservazioni:
Questa funzione è utile per scrivere implementazioni personalizzate dei gestori di aggiornamento dei comandi predefiniti scritti da ClassWizard per supportare un'interfaccia utente per lo spostamento da record a record.
Attenzione
Il risultato di questa funzione è affidabile, ad eccezione del fatto che la visualizzazione potrebbe non essere in grado di rilevare la fine del recordset fino a quando l'utente non lo ha spostato oltre. L'utente potrebbe dover passare oltre l'ultimo record prima che la visualizzazione record possa indicare che deve disabilitare tutti gli oggetti dell'interfaccia utente per passare al record successivo o all'ultimo record. Se l'utente passa oltre l'ultimo record e quindi torna all'ultimo record (o prima), la visualizzazione record può tenere traccia della posizione dell'utente nel recordset e disabilitare correttamente gli oggetti dell'interfaccia utente.
CDaoRecordView::OnGetRecordset
Restituisce un puntatore all'oggetto CDaoRecordset
derivato da associato alla visualizzazione record.
virtual CDaoRecordset* OnGetRecordset() = 0;
Valore restituito
Puntatore a un oggetto derivato da se CDaoRecordset
l'oggetto è stato creato correttamente; in caso contrario, un puntatore NULL.
Osservazioni:
È necessario eseguire l'override di questa funzione membro per costruire o ottenere un oggetto recordset e restituirvi un puntatore. Se si dichiara la classe di visualizzazione record con ClassWizard, la procedura guidata scrive automaticamente un override predefinito. L'implementazione predefinita di ClassWizard restituisce il puntatore del recordset archiviato nella visualizzazione record, se presente. In caso contrario, crea un oggetto recordset del tipo specificato con ClassWizard e chiama la relativa Open
funzione membro per aprire la tabella o eseguire la query, quindi restituisce un puntatore all'oggetto .
Per altre informazioni ed esempi, vedere l'articolo Visualizzare record: uso di una visualizzazione record.
CDaoRecordView::OnMove
Chiamare questa funzione membro per passare a un record diverso nel recordset e visualizzarne i campi nei controlli della visualizzazione record.
virtual BOOL OnMove(UINT nIDMoveCommand);
Parametri
nIDMoveCommand
Uno dei valori ID comando standard seguenti:
ID_RECORD_FIRST Passare al primo record nel recordset.
ID_RECORD_LAST Passare all'ultimo record nel recordset.
ID_RECORD_NEXT Passare al record successivo nel recordset.
ID_RECORD_PREV 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 Move appropriata dell'oggetto CDaoRecordset
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 iniziale, 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.
Attenzione
La chiamata OnMove
genera un'eccezione se il recordset non dispone di record. Chiamare la funzione del gestore di aggiornamento dell'interfaccia utente appropriata , OnUpdateRecordFirst
, OnUpdateRecordLast
OnUpdateRecordNext
, o OnUpdateRecordPrev
, prima dell'operazione di spostamento corrispondente per determinare se il recordset contiene record.
Vedi anche
Classe CFormView
Grafico della gerarchia
Classe CDaoRecordset
Classe CDaoTableDef
Classe CDaoQueryDef
Classe CDaoDatabase
Classe CDaoWorkspace
Classe CFormView