Classe CDaoTableDef

Rappresenta la definizione archiviata di una tabella di base o di una tabella collegata.

Nota

DAO è supportato tramite Office 2013. DAO 3.6 è la versione finale ed è considerata obsoleta.

Sintassi

class CDaoTableDef : public CObject

Membri

Costruttori pubblici

Nome Descrizione
CDaoTableDef::CDaoTableDef Costruisce un oggetto CDaoTableDef.

Metodi pubblici

Nome Descrizione
CDaoTableDef::Append Aggiunge una nuova tabella al database.
CDaoTableDef::CanUpdate Restituisce un valore diverso da zero se la tabella può essere aggiornata (è possibile modificare la definizione dei campi o le proprietà della tabella).
CDaoTableDef::Close Chiude un tabledef aperto.
CDaoTableDef::Create Crea una tabella che può essere aggiunta al database tramite Append.
CDaoTableDef::CreateField Chiamato per creare un campo per una tabella.
CDaoTableDef::CreateIndex Chiamato per creare un indice per una tabella.
CDaoTableDef::D eleteField Chiamato per eliminare un campo da una tabella.
CDaoTableDef::D eleteIndex Chiamato per eliminare un indice da una tabella.
CDaoTableDef::GetAttributes Restituisce un valore che indica una o più caratteristiche di un CDaoTableDef oggetto .
CDaoTableDef::GetConnect Restituisce un valore che fornisce informazioni sull'origine di una tabella.
CDaoTableDef::GetDateCreated Restituisce la data e l'ora di creazione della tabella di base sottostante un CDaoTableDef oggetto .
CDaoTableDef::GetDateLastUpdated Restituisce la data e l'ora della modifica più recente apportata alla struttura della tabella di base.
CDaoTableDef::GetFieldCount Restituisce un valore che rappresenta il numero di campi nella tabella.
CDaoTableDef::GetFieldInfo Restituisce tipi specifici di informazioni sui campi della tabella.
CDaoTableDef::GetIndexCount Restituisce il numero di indici per la tabella.
CDaoTableDef::GetIndexInfo Restituisce tipi specifici di informazioni sugli indici per la tabella.
CDaoTableDef::GetName Restituisce il nome definito dall'utente della tabella.
CDaoTableDef::GetRecordCount Restituisce il numero di record nella tabella.
CDaoTableDef::GetSourceTableName Restituisce un valore che specifica il nome della tabella associata nel database di origine.
CDaoTableDef::GetValidationRule Restituisce un valore che convalida i dati in un campo man mano che vengono modificati o aggiunti a una tabella.
CDaoTableDef::GetValidationText Restituisce un valore che specifica il testo del messaggio visualizzato dall'applicazione se il valore di un oggetto Field non soddisfa la regola di convalida specificata.
CDaoTableDef::IsOpen Restituisce un valore diverso da zero se la tabella è aperta.
CDaoTableDef::Open Apre un tabledef esistente archiviato nell'insieme TableDef del database.
CDaoTableDef::RefreshLink Aggiorna le informazioni di connessione per una tabella associata.
CDaoTableDef::SetAttributes Imposta un valore che indica una o più caratteristiche di un CDaoTableDef oggetto .
CDaoTableDef::SetConnect Imposta un valore che fornisce informazioni sull'origine di una tabella.
CDaoTableDef::SetName Imposta il nome della tabella.
CDaoTableDef::SetSourceTableName Imposta un valore che specifica il nome di una tabella associata nel database di origine.
CDaoTableDef::SetValidationRule Imposta un valore che convalida i dati in un campo quando vengono modificati o aggiunti a una tabella.
CDaoTableDef::SetValidationText Imposta un valore che specifica il testo del messaggio visualizzato dall'applicazione se il valore di un oggetto Field non soddisfa la regola di convalida specificata.

Membri dati pubblici

Nome Descrizione
CDaoTableDef::m_pDAOTableDef Puntatore all'interfaccia DAO sottostante all'oggetto tabledef.
CDaoTableDef::m_pDatabase Database di origine per questa tabella.

Osservazioni:

Ogni oggetto di database DAO gestisce una raccolta, denominata TableDefs, che contiene tutti gli oggetti tabledef DAO salvati.

È possibile modificare una definizione di tabella usando un CDaoTableDef oggetto . È ad esempio possibile:

  • Esaminare il campo e la struttura di indice di qualsiasi tabella locale, collegata o esterna in un database.

  • Chiamare le SetConnect funzioni membro e SetSourceTableName per le tabelle associate e usare la RefreshLink funzione membro per aggiornare le connessioni alle tabelle associate.

  • Chiamare la CanUpdate funzione membro per determinare se è possibile modificare le definizioni dei campi nella tabella.

  • Ottenere o impostare condizioni di convalida usando le GetValidationRule funzioni e SetValidationRulee GetValidationText SetValidationText membro .

  • Usare la funzione membro per creare un oggetto table-, dynaset-o snapshot.Use the Open member function to create a table-, dynaset-or snapshot-type CDaoRecordset object.

    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é sono specifiche del motore di database Microsoft Jet.

Per utilizzare oggetti tabledef per lavorare con una tabella esistente o per creare una nuova tabella

  1. In tutti i casi, creare innanzitutto un CDaoTableDef oggetto , fornendo un puntatore a un oggetto CDaoDatabase a cui appartiene la tabella.

  2. Eseguire quindi le operazioni seguenti, a seconda di ciò che si vuole:

    • Per usare una tabella salvata esistente, chiamare la funzione membro Open dell'oggetto tabledef, specificando il nome della tabella salvata.

    • Per creare una nuova tabella, chiamare la funzione membro Create dell'oggetto tabledef, specificando il nome della tabella. Chiamare CreateField e CreateIndex per aggiungere campi e indici alla tabella.

    • Chiamare Append per salvare la tabella aggiungendola all'insieme TableDefs del database. Create inserisce il tabledef in uno stato aperto, quindi dopo aver chiamato non si chiama Create Open.

      Suggerimento

      Il modo più semplice per creare tabelle salvate consiste nel crearli e archiviarli nel database usando Microsoft Access. È quindi possibile aprirli e usarli nel codice MFC.

Per usare l'oggetto tabledef aperto o creato, creare e aprire un CDaoRecordset oggetto , specificando il nome dell'oggetto tabledef con un dbOpenTable valore nel parametro nOpenType .

Per usare un oggetto tabledef per creare un CDaoRecordset oggetto , in genere si crea o si apre un tabledef come descritto in precedenza, quindi si crea un oggetto recordset, passando un puntatore all'oggetto tabledef quando si chiama CDaoRecordset::Open. Il tabledef passato deve trovarsi in uno stato aperto. Per altre informazioni, vedere classe CDaoRecordset.

Al termine dell'utilizzo di un oggetto tabledef, chiamare la relativa funzione membro Close , quindi eliminare definitivamente l'oggetto tabledef.

Gerarchia di ereditarietà

CObject

CDaoTableDef

Requisiti

Intestazione: afxdao.h

CDaoTableDef::Append

Chiamare questa funzione membro dopo aver chiamato Create per creare un nuovo oggetto tabledef per salvare il tabledef nel database.

virtual void Append();

Osservazioni:

La funzione aggiunge l'oggetto all'insieme TableDefs del database. È possibile usare tabledef come oggetto temporaneo durante la definizione non aggiungendolo, ma se si desidera salvarlo e usarlo, è necessario chiamare Append.

Nota

Se si tenta di accodare un tabledef senza nome (contenente una stringa null o vuota), MFC genera un'eccezione.

Per informazioni correlate, vedere l'argomento "Append Method" nella Guida di DAO.

CDaoTableDef::CanUpdate

Chiamare questa funzione membro per determinare se la definizione della tabella sottostante un CDaoTableDef oggetto può essere modificata.

BOOL CanUpdate();

Valore restituito

Diverso da zero se la struttura della tabella (schema) può essere modificata (aggiungere o eliminare campi e indici), in caso contrario 0.

Osservazioni:

Per impostazione predefinita, è possibile aggiornare una tabella appena creata sottostante un CDaoTableDef oggetto e una tabella associata sottostante un CDaoTableDef oggetto non può essere aggiornata. Un CDaoTableDef oggetto può essere aggiornabile, anche se il recordset risultante non è aggiornabile.

Per informazioni correlate, vedere l'argomento "Proprietà aggiornabile" nella Guida di DAO.

CDaoTableDef::CDaoTableDef

Costruisce un oggetto CDaoTableDef.

CDaoTableDef(CDaoDatabase* pDatabase);

Parametri

pDatabase
Puntatore a un oggetto CDaoDatabase .

Osservazioni:

Dopo aver costruito l'oggetto, è necessario chiamare la funzione membro Create o Open . Al termine dell'oggetto, è necessario chiamare la relativa funzione membro Close ed eliminare definitivamente l'oggetto CDaoTableDef .

CDaoTableDef::Close

Chiamare questa funzione membro per chiudere e rilasciare l'oggetto tabledef.

virtual void Close();

Osservazioni:

In genere, dopo aver chiamato Close, si elimina l'oggetto tabledef se è stato allocato con new.

È possibile chiamare di nuovo Open dopo aver chiamato .Close In questo modo è possibile riutilizzare l'oggetto tabledef.

Per informazioni correlate, vedere l'argomento "Close Method" nella Guida di DAO.

CDaoTableDef::Create

Chiamare questa funzione membro per creare una nuova tabella salvata.

virtual void Create(
    LPCTSTR lpszName,
    long lAttributes = 0,
    LPCTSTR lpszSrcTable = NULL,
    LPCTSTR lpszConnect = NULL);

Parametri

lpszName
Puntatore a una stringa contenente il nome della tabella.

lAttributes
Valore corrispondente alle caratteristiche della tabella rappresentata dall'oggetto tabledef. È possibile usare l'OR bit per bit per combinare una delle costanti seguenti:

Costante Descrizione
dbAttachExclusive Per i database che utilizzano il motore di database Microsoft Jet, indica che la tabella è una tabella associata aperta per l'uso esclusivo.
dbAttachSavePWD Per i database che utilizzano il motore di database Microsoft Jet, indica che l'ID utente e la password per la tabella associata vengono salvati con le informazioni di connessione.
dbSystemObject Indica che la tabella è una tabella di sistema fornita dal motore di database Microsoft Jet.
dbHiddenObject Indica che la tabella è una tabella nascosta fornita dal motore di database Microsoft Jet.

lpszSrcTable
Puntatore a una stringa contenente il nome della tabella di origine. Per impostazione predefinita, questo valore viene inizializzato come NULL.

lpszConnect
Puntatore a una stringa contenente il stringa di connessione predefinito. Per impostazione predefinita, questo valore viene inizializzato come NULL.

Osservazioni:

Dopo aver denominato tabledef, è possibile chiamare Append per salvare il tabledef nell'insieme TableDefs del database. Dopo aver chiamato Append, il tabledef è in uno stato aperto ed è possibile usarlo per creare un oggetto CDaoRecordset .

Per informazioni correlate, vedere l'argomento "Metodo CreateTableDef" nella Guida di DAO.

CDaoTableDef::CreateField

Chiamare questa funzione membro per aggiungere un campo alla tabella.

void CreateField(
    LPCTSTR lpszName,
    short nType,
    long lSize,
    long lAttributes = 0);

void CreateField(CDaoFieldInfo& fieldinfo);

Parametri

lpszName
Puntatore a un'espressione stringa che specifica il nome di questo campo.

nType
Valore che indica il tipo di dati del campo. L'impostazione può essere uno di questi valori:

Type Dimensioni (byte) Descrizione
dbBoolean 1 byte BOOL
dbByte BYTE
dbInteger 2 int
dbLong 4 long
dbCurrency 8 Valuta ( COleCurrency)
dbSingle 4 float
dbDouble 8 double
dbDate 8 Date/Time ( COleDateTime)
dbText 1 - 255 Text ( CString)
dbLongBinary 0 Long Binary (oggetto OLE), CLongBinary o CByteArray
dbMemo 0 Memo ( CString)

lSize
Valore che indica la dimensione massima, in byte, di un campo che contiene testo o la dimensione fissa di un campo che contiene valori di testo o numerici. Il parametro lSize viene ignorato per tutti i campi di testo, ma .

lAttributes
Valore corrispondente alle caratteristiche del campo e che può essere combinato usando un OR bit per bit.

Costante Descrizione
dbFixedField La dimensione del campo è fissa (impostazione predefinita per i campi numerici).
dbVariableField La dimensione del campo è variabile (solo campi di testo).
dbAutoIncrField Il valore del campo per i nuovi record viene incrementato automaticamente a un intero lungo univoco che non può essere modificato. Supportato solo per le tabelle di database Microsoft Jet.
dbUpdatableField Il valore del campo può essere modificato.
dbDescending Il campo viene ordinato in ordine decrescente (Z - A o 100 - 0) (si applica solo a un oggetto Field in un insieme Fields di un oggetto Index). Se si omette questa costante, il campo viene ordinato in ordine crescente (A - Z o 0 - 100) (impostazione predefinita).

fieldinfo
Riferimento a una struttura CDaoFieldInfo .

Osservazioni:

Viene DAOField creato e aggiunto un oggetto (OLE) all'insieme Fields dell'oggetto DAOTableDef (OLE). Oltre all'uso per esaminare le proprietà dell'oggetto, è anche possibile usare CDaoFieldInfo per costruire un parametro di input per la creazione di nuovi campi in un oggetto tabledef. La prima versione di è più semplice da usare, ma se si vuole un controllo più corretto, è possibile usare la seconda versione di CreateField CreateField, che accetta un CDaoFieldInfo parametro .

Se si usa la versione di CreateField che accetta un CDaoFieldInfo parametro, è necessario impostare attentamente ognuno dei membri seguenti della CDaoFieldInfo struttura:

  • m_strName

  • m_nType

  • m_lSize

  • m_lAttributes

  • m_bAllowZeroLength

I membri rimanenti di CDaoFieldInfo devono essere impostati su 0, FALSE o su una stringa vuota, in base alle esigenze del membro oppure può verificarsi un oggetto CDaoException .

Per informazioni correlate, vedere l'argomento "Metodo CreateField" nella Guida di DAO.

CDaoTableDef::CreateIndex

Chiamare questa funzione per aggiungere un indice a una tabella.

void CreateIndex(CDaoIndexInfo& indexinfo);

Parametri

indexinfo
Riferimento a una struttura CDaoIndexInfo .

Osservazioni:

Gli indici specificano l'ordine dei record a cui si accede dalle tabelle di database e se vengono accettati o meno record duplicati. Gli indici forniscono anche un accesso efficiente ai dati.

Non è necessario creare indici per le tabelle, ma in tabelle di grandi dimensioni non indicizzate, l'accesso a un record specifico o la creazione di un recordset può richiedere molto tempo. D'altra parte, la creazione di troppi indici rallenta le operazioni di aggiornamento, accodamento ed eliminazione man mano che tutti gli indici vengono aggiornati automaticamente. Prendere in considerazione questi fattori quando si decide quali indici creare.

I membri seguenti della CDaoIndexInfo struttura devono essere impostati:

  • m_strName È necessario specificare un nome.

  • m_pFieldInfos Deve puntare a una matrice di CDaoIndexFieldInfo strutture.

  • m_nFields Specificare il numero di campi nella matrice di CDaoFieldInfo strutture.

I membri rimanenti verranno ignorati se impostato su FALSE. Inoltre, il m_lDistinctCount membro viene ignorato durante la creazione dell'indice.

CDaoTableDef::D eleteField

Chiamare questa funzione membro per rimuovere un campo e renderlo inaccessibile.

void DeleteField(LPCTSTR lpszName);
void DeleteField(int nIndex);

Parametri

lpszName
Puntatore a un'espressione stringa che corrisponde al nome di un campo esistente.

nIndex
Indice del campo nell'insieme Fields in base zero della tabella, per la ricerca in base all'indice.

Osservazioni:

È possibile utilizzare questa funzione membro in un nuovo oggetto che non è stato aggiunto al database o quando CanUpdate restituisce un valore diverso da zero.

Per informazioni correlate, vedere l'argomento "Delete Method" nella Guida di DAO.

CDaoTableDef::D eleteIndex

Chiamare questa funzione membro per eliminare un indice in una tabella sottostante.

void DeleteIndex(LPCTSTR lpszName);
void DeleteIndex(int nIndex);

Parametri

lpszName
Puntatore a un'espressione stringa che rappresenta il nome di un indice esistente.

nIndex
Indice di matrice dell'oggetto index nell'insieme TableDefs in base zero del database, per la ricerca in base all'indice.

Osservazioni:

È possibile usare questa funzione membro in un nuovo oggetto che non è stato aggiunto al database o quando CanUpdate restituisce un valore diverso da zero.

Per informazioni correlate, vedere l'argomento "Delete Method" nella Guida di DAO.

CDaoTableDef::GetAttributes

Per un CDaoTableDef oggetto, il valore restituito specifica le caratteristiche della tabella rappresentata dall'oggetto CDaoTableDef e può essere una somma di queste costanti:

long GetAttributes();

Valore restituito

Restituisce un valore che indica una o più caratteristiche di un CDaoTableDef oggetto .

Osservazioni:

Costante Descrizione
dbAttachExclusive Per i database che utilizzano il motore di database Microsoft Jet, indica che la tabella è una tabella associata aperta per l'uso esclusivo.
dbAttachSavePWD Per i database che utilizzano il motore di database Microsoft Jet, indica che l'ID utente e la password per la tabella associata vengono salvati con le informazioni di connessione.
dbSystemObject Indica che la tabella è una tabella di sistema fornita dal motore di database Microsoft Jet.
dbHiddenObject Indica che la tabella è una tabella nascosta fornita dal motore di database Microsoft Jet.
dbAttachedTable Indica che la tabella è una tabella collegata da un database non ODBC, ad esempio un database Paradox.
dbAttachedODBC Indica che la tabella è una tabella collegata da un database ODBC, ad esempio Microsoft SQL Server.

Una tabella di sistema è una tabella creata dal motore di database Microsoft Jet per contenere varie informazioni interne.

Una tabella nascosta è una tabella creata per l'uso temporaneo dal motore di database Microsoft Jet.

Per informazioni correlate, vedere l'argomento "Proprietà attributi" nella Guida di DAO.

CDaoTableDef::GetConnect

Chiamare questa funzione membro per ottenere il stringa di connessione per un'origine dati.

CString GetConnect();

Valore restituito

Oggetto CString contenente il percorso e il tipo di database per la tabella.

Osservazioni:

Per un CDaoTableDef oggetto che rappresenta una tabella associata, l'oggetto CString è costituito da una o due parti (un identificatore di tipo di database e un percorso del database).

Il percorso come illustrato nella tabella seguente è il percorso completo per la directory contenente i file di database e deve essere preceduto dall'identificatore "DATABASE=". In alcuni casi ,come per i database Microsoft Jet e Microsoft Excel, un nome file specifico viene incluso nell'argomento percorso del database.

La tabella in CDaoTableDef::SetConnect mostra i possibili tipi di database e i relativi identificatori e percorsi di database corrispondenti:

Per le tabelle di base del database Microsoft Jet, l'identificatore è una stringa vuota ("").

Se una password è obbligatoria ma non specificata, il driver ODBC visualizza una finestra di dialogo di accesso la prima volta che si accede a una tabella e di nuovo se la connessione viene chiusa e riaperta. Se una tabella associata ha l'attributo dbAttachSavePWD , il prompt di accesso non verrà visualizzato quando la tabella viene riaperta.

Per informazioni correlate, vedere l'argomento "Connect Property" nella Guida di DAO.

CDaoTableDef::GetDateCreated

Chiamare questa funzione per determinare la data e l'ora di creazione della tabella sottostante l'oggetto CDaoTableDef .

COleDateTime GetDateCreated();

Valore restituito

Valore contenente la data e l'ora della creazione della tabella sottostante l'oggetto CDaoTableDef .

Osservazioni:

Le impostazioni di data e ora derivano dal computer in cui è stata creata o aggiornata la tabella di base. In un ambiente multiutente, gli utenti devono ottenere queste impostazioni direttamente dal file server per evitare discrepanze; ovvero, tutti i client devono usare un'origine dell'ora "standard", ad esempio da un server.

Per informazioni correlate, vedere l'argomento "DateCreated, LastUpdated Properties" nella Guida di DAO.

CDaoTableDef::GetDateLastUpdated

Chiamare questa funzione per determinare la data e l'ora dell'ultimo aggiornamento della tabella sottostante l'oggetto CDaoTableDef .

COleDateTime GetDateLastUpdated();

Valore restituito

Valore contenente la data e l'ora dell'ultimo aggiornamento della tabella sottostante l'oggetto CDaoTableDef .

Osservazioni:

Le impostazioni di data e ora derivano dal computer in cui è stata creata o aggiornata la tabella di base. In un ambiente multiutente, gli utenti devono ottenere queste impostazioni direttamente dal file server per evitare discrepanze; ovvero, tutti i client devono usare un'origine dell'ora "standard", ad esempio da un server.

Per informazioni correlate, vedere l'argomento "DateCreated, LastUpdated Properties" nella Guida di DAO.

CDaoTableDef::GetFieldCount

Chiamare questa funzione membro per recuperare il numero di campi definiti nella tabella.

short GetFieldCount();

Valore restituito

Numero di campi nella tabella.

Osservazioni:

Se il valore è 0, nella raccolta non sono presenti oggetti.

Per informazioni correlate, vedere l'argomento "Count Property" nella Guida di DAO.

CDaoTableDef::GetFieldInfo

Chiamare questa funzione membro per ottenere vari tipi di informazioni su un campo definito nell'oggetto tabledef.

void GetFieldInfo(
    int nIndex,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetFieldInfo(
    LPCTSTR lpszName,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parametri

nIndex
Indice dell'oggetto campo nell'insieme Fields in base zero della tabella, per la ricerca in base all'indice.

fieldinfo
Riferimento a una struttura CDaoFieldInfo .

dwInfoOptions
Opzioni che specificano le informazioni sul campo da recuperare. Le opzioni disponibili sono elencate di seguito insieme a ciò che causano la restituzione della funzione:

  • AFX_DAO_PRIMARY_INFO (Impostazione predefinita) Name, Type, Size, Attributes. Usare questa opzione per ottenere prestazioni più veloci.

  • AFX_DAO_SECONDARY_INFO Informazioni principali, più: Posizione ordinale, Obbligatorio, Consenti lunghezza zero, Ordine di confronto, Nome esterno, Campo di origine, Tabella di origine

  • AFX_DAO_ALL_INFO Informazioni primarie e secondarie, oltre a: Regola di convalida, Testo di convalida, Valore predefinito

lpszName
Puntatore al nome dell'oggetto campo, per la ricerca in base al nome. Il nome è una stringa con un massimo di 64 caratteri che assegna un nome univoco al campo.

Osservazioni:

Una versione della funzione consente di cercare un campo per indice. L'altra versione consente di cercare un campo in base al nome.

Per una descrizione delle informazioni restituite, vedere la struttura CDaoFieldInfo . Questa struttura ha membri che corrispondono agli elementi delle informazioni elencate in precedenza nella descrizione di dwInfoOptions. Quando si richiedono informazioni a un livello, si ottengono anche informazioni per i livelli precedenti.

Per informazioni correlate, vedere l'argomento "Proprietà attributi" nella Guida di DAO.

CDaoTableDef::GetIndexCount

Chiamare questa funzione membro per ottenere il numero di indici per una tabella.

short GetIndexCount();

Valore restituito

Numero di indici per la tabella.

Osservazioni:

Se il valore è 0, nell'insieme non sono presenti indici.

Per informazioni correlate, vedere l'argomento "Count Property" nella Guida di DAO.

CDaoTableDef::GetIndexInfo

Chiamare questa funzione membro per ottenere vari tipi di informazioni su un indice definito nell'oggetto tabledef.

void GetIndexInfo(
    int nIndex,
    CDaoIndexInfo& indexinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetIndexInfo(
    LPCTSTR lpszName,
    CDaoIndexInfo& indexinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

Parametri

nIndex
Indice numerico dell'oggetto Index nell'insieme Indexes in base zero della tabella, per la ricerca in base alla relativa posizione nell'insieme.

indexinfo
Riferimento a una struttura CDaoIndexInfo .

dwInfoOptions
Opzioni che specificano le informazioni sull'indice da recuperare. Le opzioni disponibili sono elencate di seguito insieme a ciò che causano la restituzione della funzione:

  • AFX_DAO_PRIMARY_INFO Nome, Informazioni campo, Campi. Usare questa opzione per ottenere prestazioni più veloci.

  • AFX_DAO_SECONDARY_INFO Informazioni primarie, oltre a: Primario, Univoco, Clustered, Ignora valori Null, Obbligatorio, Esterno

  • AFX_DAO_ALL_INFO Informazioni primarie e secondarie, più: Conteggio distinct

lpszName
Puntatore al nome dell'oggetto index, per la ricerca in base al nome.

Osservazioni:

Una versione della funzione consente di cercare un indice in base alla relativa posizione nella raccolta. L'altra versione consente di cercare un indice in base al nome.

Per una descrizione delle informazioni restituite, vedere la struttura CDaoIndexInfo . Questa struttura ha membri che corrispondono agli elementi delle informazioni elencate in precedenza nella descrizione di dwInfoOptions. Quando si richiedono informazioni a un livello, si ottengono anche informazioni per i livelli precedenti.

Per informazioni correlate, vedere l'argomento "Proprietà attributi" nella Guida di DAO.

CDaoTableDef::GetName

Chiamare questa funzione membro per ottenere il nome definito dall'utente della tabella sottostante.

CString GetName();

Valore restituito

Nome definito dall'utente per una tabella.

Osservazioni:

Questo nome inizia con una lettera e può contenere un massimo di 64 caratteri. Può includere numeri e caratteri di sottolineatura, ma non può includere punteggiatura o spazi.

Per informazioni correlate, vedere l'argomento "Proprietà nome" nella Guida di DAO.

CDaoTableDef::GetRecordCount

Chiamare questa funzione membro per scoprire quanti record si trovano in un CDaoTableDef oggetto .

long GetRecordCount();

Valore restituito

Numero di record a cui si accede in un oggetto tabledef.

Osservazioni:

La chiamata GetRecordCount a un oggetto di tipo CDaoTableDef tabella riflette il numero approssimativo di record nella tabella e viene influenzata immediatamente quando i record di tabella vengono aggiunti ed eliminati. Il rollback delle transazioni verrà visualizzato come parte del conteggio dei record fino a quando non si chiama CDaoWorkSpace::CompactDatabase. Un CDaoTableDef oggetto senza record ha un'impostazione della proprietà conteggio record pari a 0. Quando si utilizzano tabelle collegate o database ODBC, GetRecordCount restituisce sempre -1.

Per informazioni correlate, vedere l'argomento "Proprietà RecordCount" nella Guida di DAO.

CDaoTableDef::GetSourceTableName

Chiamare questa funzione membro per recuperare il nome di una tabella associata in un database di origine.

CString GetSourceTableName();

Valore restituito

Oggetto CString che specifica il nome di origine di una tabella associata o una stringa vuota se una tabella dati nativa.

Osservazioni:

Una tabella collegata è una tabella in un altro database collegato a un database Microsoft Jet. I dati per le tabelle collegate rimangono nel database esterno, in cui possono essere modificati da altre applicazioni.

Per informazioni correlate, vedere l'argomento "SourceTableName Property" nella Guida di DAO.

CDaoTableDef::GetValidationRule

Chiamare questa funzione membro per recuperare la regola di convalida per un tabledef.

CString GetValidationRule();

Valore restituito

Oggetto CString che convalida i dati in un campo durante la modifica o l'aggiunta a una tabella.

Osservazioni:

Le regole di convalida vengono usate in connessione con le operazioni di aggiornamento. Se un tabledef contiene una regola di convalida, gli aggiornamenti di tale tabledef devono corrispondere a criteri predeterminati prima che i dati vengano modificati. Se la modifica non corrisponde ai criteri, viene generata un'eccezione contenente il valore di GetValidationText . Per un CDaoTableDef oggetto, questa CString proprietà è di sola lettura per una tabella associata e di lettura/scrittura per una tabella di base.

Per informazioni correlate, vedere l'argomento "ValidationRule Property" nella Guida di DAO.

CDaoTableDef::GetValidationText

Chiamare questa funzione per recuperare la stringa da visualizzare quando un utente immette dati che non corrispondono alla regola di convalida.

CString GetValidationText();

Valore restituito

Oggetto CString che specifica il testo visualizzato se l'utente immette dati che non corrispondono alla regola di convalida.

Osservazioni:

Per un CDaoTableDef oggetto, questa CString proprietà è di sola lettura per una tabella associata e di lettura/scrittura per una tabella di base.

Per informazioni correlate, vedere l'argomento "Proprietà ValidationText" nella Guida di DAO.

CDaoTableDef::IsOpen

Chiamare questa funzione membro per determinare se l'oggetto CDaoTableDef è attualmente aperto.

BOOL IsOpen() const;

Valore restituito

Diverso da zero se l'oggetto CDaoTableDef è aperto; in caso contrario, 0.

Osservazioni:

CDaoTableDef::m_pDatabase

Contiene un puntatore all'oggetto CDaoDatabase per questa tabella.

Osservazioni:

CDaoTableDef::m_pDAOTableDef

Contiene un puntatore all'interfaccia OLE per l'oggetto tabledef DAO sottostante all'oggetto CDaoTableDef .

Osservazioni:

Usare questo puntatore se è necessario accedere direttamente all'interfaccia DAO.

CDaoTableDef::Open

Chiamare questa funzione membro per aprire un tabledef salvato in precedenza nella raccolta TableDef del database.

virtual void Open(LPCTSTR lpszName);

Parametri

lpszName
Puntatore a una stringa che specifica un nome di tabella.

Osservazioni:

Chiamare questa funzione membro per aggiornare le informazioni di connessione per una tabella associata.

void RefreshLink();

Osservazioni:

Per modificare le informazioni di connessione per una tabella associata, chiamare SetConnect sull'oggetto corrispondente CDaoTableDef e quindi usare la RefreshLink funzione membro per aggiornare le informazioni. Quando si chiama RefreshLink, le proprietà della tabella associata non vengono modificate.

Per forzare l'applicazione delle informazioni di connessione modificate, tutti gli oggetti CDaoRecordset aperti basati su questo tabledef devono essere chiusi.

Per informazioni correlate, vedere l'argomento "Metodo RefreshLink" nella Guida di DAO.

CDaoTableDef::SetAttributes

Imposta un valore che indica una o più caratteristiche di un CDaoTableDef oggetto .

void SetAttributes(long lAttributes);

Parametri

lAttributes
Le caratteristiche della tabella rappresentate dall'oggetto CDaoTableDef e possono essere una somma di queste costanti:

Costante Descrizione
dbAttachExclusive Per i database che utilizzano il motore di database Microsoft Jet, indica che la tabella è una tabella associata aperta per l'uso esclusivo.
dbAttachSavePWD Per i database che utilizzano il motore di database Microsoft Jet, indica che l'ID utente e la password per la tabella associata vengono salvati con le informazioni di connessione.
dbSystemObject Indica che la tabella è una tabella di sistema fornita dal motore di database Microsoft Jet.
dbHiddenObject Indica che la tabella è una tabella nascosta fornita dal motore di database Microsoft Jet.

Osservazioni:

Quando si impostano più attributi, è possibile combinarli sommando le costanti appropriate usando l'operatore OR bit per bit. L'impostazione dbAttachExclusive su una tabella non collegata genera un'eccezione. La combinazione dei valori seguenti genera anche un'eccezione:

  • dbAttachExclusive | dbAttachedODBC

  • dbAttachSavePWD | dbAttachedTable

Per informazioni correlate, vedere l'argomento "Proprietà attributi" nella Guida di DAO.

CDaoTableDef::SetConnect

Per un CDaoTableDef oggetto che rappresenta una tabella associata, l'oggetto stringa è costituito da una o due parti (un identificatore di tipo di database e un percorso del database).

void SetConnect(LPCTSTR lpszConnect);

Parametri

lpszConnect
Puntatore a un'espressione stringa che specifica parametri aggiuntivi da passare ai driver ODBC o ISAM installabili.

Osservazioni:

Il percorso come illustrato nella tabella seguente è il percorso completo per la directory contenente i file di database e deve essere preceduto dall'identificatore "DATABASE=". In alcuni casi ,come per i database Microsoft Jet e Microsoft Excel, un nome file specifico viene incluso nell'argomento percorso del database.

Nota

Non includere spazi vuoti intorno alle istruzioni di percorso di segno uguale del formato "DATABASE=unità:\\path". Ciò comporterà la generazione di un'eccezione e l'esito negativo della connessione.

La tabella seguente illustra i possibili tipi di database e i relativi identificatori e percorsi di database corrispondenti:

Tipo di database Identificatore Percorso
Database con il motore di database Jet "[ database];" " drive:\\ percorso\\ filename. MDB"
dBASE III "dBASE III;" " drive:\\ path"
dBASE IV "dBASE IV;" " drive:\\ path"
dBASE 5 "dBASE 5.0;" " drive:\\ path"
Paradox 3.x "Paradox 3.x;" " drive:\\ path"
Paradox 4.x "Paradox 4.x;" " drive:\\ path"
Paradox 5.x "Paradox 5.x;" " drive:\\ path"
Excel 3.0 "Excel 3.0;" " drive:\\ path\\ filename.XLS"
Excel 4.0 "Excel 4.0;" " drive:\\ path\\ filename.XLS"
Excel 5.0 o Excel 95 "Excel 5.0;" " drive:\\ path\\ filename.XLS"
Excel 97 "Excel 8.0;" " drive:\\ path\ filename.XLS"
Importazione HTML "Html Import;" " drive:\\ path\ filename"
Esportazione HTML "Esportazione HTML;" " drive:\\ path"
Testo "Text;" "drive:\\path"
ODBC "ODBC; DATABASE= database; UID= user; PWD= password; DSN= datasourcename; LOGINTIMEOUT= seconds;" Potrebbe non trattarsi di un stringa di connessione completo per tutti i server. Si tratta solo di un esempio. È molto importante non avere spazi tra i parametri. None
Exchange "Exchange;

MAPILEVEL= folderpath;

[TABLETYPE={ 0 | 1 };]

[PROFILE= profile;]

[PWD= password;]

[DATABASE= database;]"
"drive:\\ path\\ filename. MDB"

Nota

Btrieve non è più supportato a partire da DAO 3.5.

È necessario usare una doppia barra rovesciata (\\) nelle stringa di connessione. Se sono state modificate le proprietà di una connessione esistente tramite SetConnect, è necessario chiamare successivamente RefreshLink. Se si inizializzano le proprietà di connessione usando SetConnect, non è necessario chiamare RefreshLink, ma è necessario scegliere di farlo, aggiungere prima di tutto il tabledef.

Se una password è obbligatoria ma non specificata, il driver ODBC visualizza una finestra di dialogo di accesso la prima volta che si accede a una tabella e di nuovo se la connessione viene chiusa e riaperta.

È possibile impostare il stringa di connessione per un CDaoTableDef oggetto fornendo un argomento di origine alla Create funzione membro. È possibile controllare l'impostazione per determinare il tipo, il percorso, l'ID utente, la password o l'origine dati ODBC del database. Per altre informazioni, vedere la documentazione relativa al driver specifico.

Per informazioni correlate, vedere l'argomento "Connect Property" nella Guida di DAO.

CDaoTableDef::SetName

Chiamare questa funzione membro per impostare un nome definito dall'utente per una tabella.

void SetName(LPCTSTR lpszName);

Parametri

lpszName
Puntatore a un'espressione stringa che specifica un nome per una tabella.

Osservazioni:

Il nome deve iniziare con una lettera e può contenere un massimo di 64 caratteri. Può includere numeri e caratteri di sottolineatura, ma non può includere punteggiatura o spazi.

Per informazioni correlate, vedere l'argomento "Proprietà nome" nella Guida di DAO.

CDaoTableDef::SetSourceTableName

Chiamare questa funzione membro per specificare il nome di una tabella associata o il nome della tabella di base su cui si basa l'oggetto CDaoTableDef , come esiste nell'origine originale dei dati.

void SetSourceTableName(LPCTSTR lpszSrcTableName);

Parametri

lpszSrcTableName
Puntatore a un'espressione stringa che specifica un nome di tabella nel database esterno. Per una tabella di base, l'impostazione è una stringa vuota ("").

Osservazioni:

È quindi necessario chiamare RefreshLink. Questa impostazione di proprietà è vuota per una tabella di base e la lettura/scrittura per una tabella associata o un oggetto non accodato a un insieme.

Per informazioni correlate, vedere l'argomento "SourceTableName Property" nella Guida di DAO.

CDaoTableDef::SetValidationRule

Chiamare questa funzione membro per impostare una regola di convalida per un tabledef.

void SetValidationRule(LPCTSTR lpszValidationRule);

Parametri

lpszValidationRule
Puntatore a un'espressione stringa che convalida un'operazione.

Osservazioni:

Le regole di convalida vengono usate in connessione con le operazioni di aggiornamento. Se un tabledef contiene una regola di convalida, gli aggiornamenti di tale tabledef devono corrispondere a criteri predeterminati prima che i dati vengano modificati. Se la modifica non corrisponde ai criteri, viene visualizzata un'eccezione contenente il testo di GetValidationText .

La convalida è supportata solo per i database che usano il motore di database Microsoft Jet. L'espressione non può fare riferimento a funzioni definite dall'utente, funzioni di aggregazione del dominio, funzioni di aggregazione SQL o query. Una regola di convalida per un CDaoTableDef oggetto può fare riferimento a più campi in tale oggetto.

Ad esempio, per i campi denominati hire_date e termination_date, una regola di convalida potrebbe essere:

myTableDef.SetValidationRule(_T("termination_date > hire_date"));

Per informazioni correlate, vedere l'argomento "ValidationRule Property" nella Guida di DAO.

CDaoTableDef::SetValidationText

Chiamare questa funzione membro per impostare il testo dell'eccezione di una regola di convalida per un CDaoTableDef oggetto con una tabella di base sottostante supportata dal motore di database Microsoft Jet.

void SetValidationText(LPCTSTR lpszValidationText);

Parametri

lpszValidationText
Puntatore a un'espressione stringa che specifica il testo visualizzato se i dati immessi non sono validi.

Osservazioni:

Non è possibile impostare il testo di convalida di una tabella associata.

Per informazioni correlate, vedere l'argomento "Proprietà ValidationText" nella Guida di DAO.

Vedi anche

Classe CObject
Grafico della gerarchia
Classe CDaoDatabase
Classe CDaoRecordset