Klasa CDaoTableDef
Reprezentuje przechowywaną definicję tabeli podstawowej lub dołączonej tabeli.
Uwaga
DaO jest obsługiwane za pośrednictwem pakietu Office 2013. DaO 3.6 jest wersją ostateczną i jest uważany za przestarzałą.
Składnia
class CDaoTableDef : public CObject
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CDaoTableDef::CDaoTableDef | CDaoTableDef Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CDaoTableDef::Append | Dodaje nową tabelę do bazy danych. |
CDaoTableDef::CanUpdate | Zwraca wartość inną niżzerowa, jeśli można zaktualizować tabelę (można zmodyfikować definicję pól lub właściwości tabeli). |
CDaoTableDef::Close | Zamyka otwartą definicję tabeli. |
CDaoTableDef::Create | Tworzy tabelę, którą można dodać do bazy danych przy użyciu funkcji Dołącz. |
CDaoTableDef::CreateField | Wywoływane w celu utworzenia pola dla tabeli. |
CDaoTableDef::CreateIndex | Wywoływane w celu utworzenia indeksu dla tabeli. |
CDaoTableDef::D eleteField | Wywoływane w celu usunięcia pola z tabeli. |
CDaoTableDef::D eleteIndex | Wywoływana w celu usunięcia indeksu z tabeli. |
CDaoTableDef::GetAttributes | Zwraca wartość wskazującą co najmniej jedną cechę CDaoTableDef obiektu. |
CDaoTableDef::GetConnect | Zwraca wartość, która zawiera informacje o źródle tabeli. |
CDaoTableDef::GetDateCreated | Zwraca datę i godzinę utworzenia tabeli bazowej CDaoTableDef obiektu. |
CDaoTableDef::GetDateLastUpdated | Zwraca datę i godzinę ostatniej zmiany wprowadzonej w projekcie tabeli podstawowej. |
CDaoTableDef::GetFieldCount | Zwraca wartość reprezentującą liczbę pól w tabeli. |
CDaoTableDef::GetFieldInfo | Zwraca określone rodzaje informacji o polach w tabeli. |
CDaoTableDef::GetIndexCount | Zwraca liczbę indeksów dla tabeli. |
CDaoTableDef::GetIndexInfo | Zwraca określone rodzaje informacji o indeksach dla tabeli. |
CDaoTableDef::GetName | Zwraca zdefiniowaną przez użytkownika nazwę tabeli. |
CDaoTableDef::GetRecordCount | Zwraca liczbę rekordów w tabeli. |
CDaoTableDef::GetSourceTableName | Zwraca wartość określającą nazwę dołączonej tabeli w źródłowej bazie danych. |
CDaoTableDef::GetValidationRule | Zwraca wartość, która weryfikuje dane w polu w miarę ich zmiany lub dodawania do tabeli. |
CDaoTableDef::GetValidationText | Zwraca wartość określającą tekst komunikatu wyświetlanego przez aplikację, jeśli wartość obiektu Field nie spełnia określonej reguły walidacji. |
CDaoTableDef::IsOpen | Zwraca wartość niezerowa, jeśli tabela jest otwarta. |
CDaoTableDef::Open | Otwiera istniejącą definicję tabeli przechowywaną w kolekcji TableDef bazy danych. |
CDaoTableDef::RefreshLink | Aktualizuje informacje o połączeniu dla dołączonej tabeli. |
CDaoTableDef::SetAttributes | Ustawia wartość wskazującą co najmniej jedną cechę CDaoTableDef obiektu. |
CDaoTableDef::SetConnect | Ustawia wartość, która zawiera informacje o źródle tabeli. |
CDaoTableDef::SetName | Ustawia nazwę tabeli. |
CDaoTableDef::SetSourceTableName | Ustawia wartość określającą nazwę dołączonej tabeli w źródłowej bazie danych. |
CDaoTableDef::SetValidationRule | Ustawia wartość, która weryfikuje dane w polu w miarę ich zmiany lub dodawania do tabeli. |
CDaoTableDef::SetValidationText | Ustawia wartość określającą tekst komunikatu wyświetlanego przez aplikację, jeśli wartość obiektu Field nie spełnia określonej reguły walidacji. |
Publiczne elementy członkowskie danych
Nazwa/nazwisko | opis |
---|---|
CDaoTableDef::m_pDAOTableDef | Wskaźnik do interfejsu DAO bazowego obiektu tabledef. |
CDaoTableDef::m_pDatabase | Źródłowa baza danych dla tej tabeli. |
Uwagi
Każdy obiekt bazy danych DAO przechowuje kolekcję o nazwie TableDefs, która zawiera wszystkie zapisane obiekty tabeli DAO.
Manipulujesz definicją CDaoTableDef
tabeli przy użyciu obiektu. Można na przykład:
Sprawdź strukturę pól i indeksów dowolnej lokalnej, dołączonej lub zewnętrznej tabeli w bazie danych.
Wywołaj
SetConnect
funkcje składowe iSetSourceTableName
dla dołączonych tabel i użyj funkcji składowejRefreshLink
, aby zaktualizować połączenia z dołączonymi tabelami.Wywołaj funkcję składową,
CanUpdate
aby określić, czy można edytować definicje pól w tabeli.Uzyskiwanie lub ustawianie warunków weryfikacji przy użyciu
GetValidationRule
funkcji iSetValidationRule
iGetValidationText
elementówSetValidationText
członkowskich.Użyj funkcji składowej
Open
, aby utworzyć obiekt typu tabela-, dynaset-lub migawkaCDaoRecordset
.Uwaga
Klasy baz danych DAO różnią się od klas baz danych MFC opartych na technologii Open Database Connectivity (ODBC). Wszystkie nazwy klas bazy danych DAO mają prefiks "CDao". Nadal można uzyskać dostęp do źródeł danych ODBC za pomocą klas DAO; Klasy DAO zwykle oferują lepsze możliwości, ponieważ są specyficzne dla aparatu bazy danych Microsoft Jet.
Aby użyć obiektów tabledef do pracy z istniejącą tabelą lub do utworzenia nowej tabeli
We wszystkich przypadkach najpierw skonstruuj
CDaoTableDef
obiekt, podając wskaźnik do obiektu CDaoDatabase , do którego należy tabela.Następnie wykonaj następujące czynności w zależności od tego, co chcesz:
Aby użyć istniejącej zapisanej tabeli, wywołaj funkcję Open member obiektu tabledef, podając nazwę zapisanej tabeli.
Aby utworzyć nową tabelę, wywołaj funkcję create member obiektu tabledef, podając nazwę tabeli. Wywołaj metodę CreateField i CreateIndex , aby dodać pola i indeksy do tabeli.
Wywołaj metodę Append , aby zapisać tabelę, dołączając ją do kolekcji TableDefs bazy danych.
Create
polecenie tabledef jest w stanie otwartym, więc po wywołaniuCreate
polecenia nie wywołujesz metodyOpen
.Napiwek
Najprostszym sposobem tworzenia zapisanych tabel jest utworzenie ich i zapisanie ich w bazie danych przy użyciu programu Microsoft Access. Następnie możesz je otworzyć i użyć w kodzie MFC.
Aby użyć obiektu tabledef, który został otwarty lub utworzony, utwórz i otwórz CDaoRecordset
obiekt, określając nazwę tabelidef z wartością dbOpenTable
w parametrze nOpenType .
Aby użyć obiektu tabledef do utworzenia CDaoRecordset
obiektu, zazwyczaj tworzy się lub otwiera definicję tabeli zgodnie z powyższym opisem, a następnie skonstruujesz obiekt zestawu rekordów, przekazując wskaźnik do obiektu tabledef podczas wywoływania CDaoRecordset::Open. Tabeladef, którą należy przekazać, musi być w stanie otwartym. Aby uzyskać więcej informacji, zobacz klasa CDaoRecordset.
Po zakończeniu korzystania z obiektu tabledef wywołaj funkcję zamknij składową, a następnie zniszcz obiekt tabledef.
Hierarchia dziedziczenia
CDaoTableDef
Wymagania
Nagłówek: afxdao.h
CDaoTableDef::Append
Wywołaj tę funkcję składową po wywołaniu polecenia Utwórz , aby utworzyć nowy obiekt tabledef w celu zapisania definicji tabeli w bazie danych.
virtual void Append();
Uwagi
Funkcja dołącza obiekt do kolekcji TableDefs bazy danych. Definicję tabeli można użyć jako obiektu tymczasowego podczas definiowania go, nie dołączając go, ale jeśli chcesz go zapisać i użyć, musisz wywołać metodę Append
.
Uwaga
Jeśli spróbujesz dołączyć nienazwaną definicję tabeli (zawierającą ciąg o wartości null lub pusty), MFC zgłosi wyjątek.
Aby uzyskać powiązane informacje, zobacz temat "Metoda dołączania" w pomocy dao.
CDaoTableDef::CanUpdate
Wywołaj tę funkcję składową, aby określić, czy można zmienić definicję tabeli bazowej CDaoTableDef
obiektu.
BOOL CanUpdate();
Wartość zwracana
Niezerowe, jeśli można zmodyfikować strukturę tabeli (schemat) (dodawać lub usuwać pola i indeksy), w przeciwnym razie 0.
Uwagi
Domyślnie nowo utworzona tabela bazowa CDaoTableDef
obiektu może zostać zaktualizowana, a dołączona tabela bazowa CDaoTableDef
obiektu nie może zostać zaktualizowana. CDaoTableDef
Obiekt może być aktualizowalny, nawet jeśli wynikowy zestaw rekordów nie jest aktualizowalny.
Aby uzyskać powiązane informacje, zobacz temat "Updatable Property" (Właściwość aktualizowalna) w pomocy dotyczącej języka DAO.
CDaoTableDef::CDaoTableDef
CDaoTableDef
Tworzy obiekt.
CDaoTableDef(CDaoDatabase* pDatabase);
Parametry
pDatabase
Wskaźnik do obiektu CDaoDatabase .
Uwagi
Po utworzeniu obiektu należy wywołać funkcję Utwórz lub Otwórz element członkowski. Po zakończeniu pracy z obiektem należy wywołać jego funkcję elementy członkowskie Close i zniszczyć CDaoTableDef
obiekt.
CDaoTableDef::Close
Wywołaj tę funkcję składową, aby zamknąć i zwolnić obiekt tabledef.
virtual void Close();
Uwagi
Zwykle po wywołaniu Close
metody należy usunąć obiekt tabledef, jeśli został przydzielony za pomocą new
polecenia .
Możesz ponownie wywołać metodę Otwórz po wywołaniu metody Close
. Umożliwia to ponowne użycie obiektu tabledef.
Aby uzyskać powiązane informacje, zobacz temat "Close Method" (Metoda zamykania) w pomocy dao.
CDaoTableDef::Create
Wywołaj tę funkcję składową, aby utworzyć nową zapisaną tabelę.
virtual void Create(
LPCTSTR lpszName,
long lAttributes = 0,
LPCTSTR lpszSrcTable = NULL,
LPCTSTR lpszConnect = NULL);
Parametry
lpszName
Wskaźnik do ciągu zawierającego nazwę tabeli.
lAttributes
Wartość odpowiadająca cechom tabeli reprezentowanej przez obiekt tabledef. Możesz użyć bitowego or, aby połączyć dowolną z następujących stałych:
Stała | opis |
---|---|
dbAttachExclusive |
W przypadku baz danych korzystających z aparatu bazy danych Microsoft Jet wskazuje, że tabela jest dołączoną tabelą otwartą do wyłącznego użytku. |
dbAttachSavePWD |
W przypadku baz danych korzystających z aparatu bazy danych Microsoft Jet wskazuje, że identyfikator użytkownika i hasło dołączonej tabeli są zapisywane przy użyciu informacji o połączeniu. |
dbSystemObject |
Wskazuje, że tabela jest tabelą systemową dostarczaną przez aparat bazy danych Microsoft Jet. |
dbHiddenObject |
Wskazuje, że tabela jest ukrytą tabelą dostarczaną przez aparat bazy danych Microsoft Jet. |
lpszSrcTable
Wskaźnik do ciągu zawierającego nazwę tabeli źródłowej. Domyślnie ta wartość jest inicjowana jako NULL.
lpszConnect
Wskaźnik do ciągu zawierającego parametry połączenia domyślną. Domyślnie ta wartość jest inicjowana jako NULL.
Uwagi
Po nazwie tabledef możesz wywołać metodę Append , aby zapisać definicję tabeli w kolekcji TableDefs bazy danych. Po wywołaniu metody Append
parametr tabledef jest w stanie otwartym i można go użyć do utworzenia obiektu CDaoRecordset .
Aby uzyskać powiązane informacje, zobacz temat "CreateTableDef Method" (Metoda CreateTableDef) w pomocy dao.
CDaoTableDef::CreateField
Wywołaj tę funkcję składową, aby dodać pole do tabeli.
void CreateField(
LPCTSTR lpszName,
short nType,
long lSize,
long lAttributes = 0);
void CreateField(CDaoFieldInfo& fieldinfo);
Parametry
lpszName
Wskaźnik do wyrażenia ciągu określający nazwę tego pola.
nType
Wartość wskazująca typ danych pola. Ustawienie może być jedną z następujących wartości:
Typ | Rozmiar (bajty) | opis |
---|---|---|
dbBoolean |
1 bajt | BOOL |
dbByte |
BYTE | |
dbInteger |
2 | int |
dbLong |
100 | długi |
dbCurrency |
8 | Waluta ( COleCurrency) |
dbSingle |
100 | liczba zmiennoprzecinkowa |
dbDouble |
8 | double |
dbDate |
8 | Data/godzina ( COleDateTime) |
dbText |
1 - 255 | Text ( CString) |
dbLongBinary |
0 | Długi plik binarny (obiekt OLE), CLongBinary lub CByteArray |
dbMemo |
0 | Nota ( CString) |
Rozmiar l
Wartość wskazująca maksymalny rozmiar w bajtach pola zawierającego tekst lub stały rozmiar pola zawierającego wartości tekstowe lub liczbowe. Parametr lSize jest ignorowany dla wszystkich pól tekstowych, ale.
lAttributes
Wartość odpowiadająca cechom pola i którą można połączyć za pomocą bitowego or.
Stała | opis |
---|---|
dbFixedField |
Rozmiar pola jest stały (wartość domyślna dla pól liczbowych). |
dbVariableField |
Rozmiar pola jest zmienny (tylko pola tekstowe). |
dbAutoIncrField |
Wartość pola dla nowych rekordów jest automatycznie zwiększana do unikatowej długiej liczby całkowitej, której nie można zmienić. Obsługiwane tylko w przypadku tabel bazy danych Microsoft Jet. |
dbUpdatableField |
Wartość pola można zmienić. |
dbDescending |
Pole jest sortowane w kolejności malejącej (Z - A lub 100–0) (dotyczy tylko obiektu Field w kolekcji Pola obiektu Indeks). Jeśli pominięto tę stałą, pole jest sortowane w kolejności rosnącej (A – Z lub 0 – 100) (wartość domyślna). |
fieldinfo
Odwołanie do struktury CDaoFieldInfo .
Uwagi
Obiekt DAOField
(OLE) jest tworzony i dołączany do kolekcji DAOTableDef
Fields obiektu (OLE). Poza jego użyciem do badania właściwości obiektu można również użyć CDaoFieldInfo
do konstruowania parametru wejściowego do tworzenia nowych pól w definicji tabeli. Pierwsza wersja programu CreateField
jest prostsza do użycia, ale jeśli chcesz uzyskać dokładnszą kontrolę, możesz użyć drugiej wersji CreateField
elementu , która przyjmuje CDaoFieldInfo
parametr .
Jeśli używasz wersji CreateField
, która przyjmuje CDaoFieldInfo
parametr, należy dokładnie ustawić każdy z następujących elementów członkowskich CDaoFieldInfo
struktury:
m_strName
m_nType
m_lSize
m_lAttributes
m_bAllowZeroLength
Pozostałe elementy członkowskie CDaoFieldInfo
powinny być ustawione na 0, FALSE lub pusty ciąg, odpowiednio dla elementu członkowskiego, lub CDaoException
może wystąpić.
Aby uzyskać powiązane informacje, zobacz temat "CreateField Method" (Metoda CreateField) w pomocy dao.
CDaoTableDef::CreateIndex
Wywołaj tę funkcję, aby dodać indeks do tabeli.
void CreateIndex(CDaoIndexInfo& indexinfo);
Parametry
indexinfo
Odwołanie do struktury CDaoIndexInfo .
Uwagi
Indeksy określają kolejność rekordów, do których uzyskuje się dostęp z tabel bazy danych i czy akceptowane są zduplikowane rekordy. Indeksy zapewniają również wydajny dostęp do danych.
Nie trzeba tworzyć indeksów dla tabel, ale w dużych, nieindeksowanych tabelach uzyskiwanie dostępu do określonego rekordu lub tworzenie zestawu rekordów może zająć dużo czasu. Z drugiej strony tworzenie zbyt wielu indeksów spowalnia operacje aktualizacji, dołączania i usuwania, ponieważ wszystkie indeksy są automatycznie aktualizowane. Rozważ te czynniki podczas decydowania o tym, które indeksy mają zostać utworzone.
Należy ustawić następujące elementy członkowskie CDaoIndexInfo
struktury:
m_strName
Należy podać nazwę.m_pFieldInfos
Musi wskazywać tablicęCDaoIndexFieldInfo
struktur.m_nFields
Musi określać liczbę pól w tablicyCDaoFieldInfo
struktur.
Pozostałe elementy członkowskie zostaną zignorowane, jeśli zostanie ustawiona wartość FALSE. Ponadto element członkowski m_lDistinctCount
jest ignorowany podczas tworzenia indeksu.
CDaoTableDef::D eleteField
Wywołaj tę funkcję składową, aby usunąć pole i uczynić je niedostępnym.
void DeleteField(LPCTSTR lpszName);
void DeleteField(int nIndex);
Parametry
lpszName
Wskaźnik do wyrażenia ciągu, który jest nazwą istniejącego pola.
nIndex
Indeks pola w kolekcji Pola oparte na zera tabeli dla wyszukiwania według indeksu.
Uwagi
Tej funkcji składowej można użyć w nowym obiekcie, który nie został dołączony do bazy danych lub gdy program CanUpdate zwraca wartość niezerową.
Aby uzyskać powiązane informacje, zobacz temat "Delete Method" (Usuwanie metody) w pomocy dao.
CDaoTableDef::D eleteIndex
Wywołaj tę funkcję składową, aby usunąć indeks w tabeli bazowej.
void DeleteIndex(LPCTSTR lpszName);
void DeleteIndex(int nIndex);
Parametry
lpszName
Wskaźnik do wyrażenia ciągu, który jest nazwą istniejącego indeksu.
nIndex
Indeks tablicy obiektu indeksu w kolekcji TableDefs bazy danych oparty na zera dla wyszukiwania według indeksu.
Uwagi
Tej funkcji składowej można użyć w nowym obiekcie, który nie został dołączony do bazy danych lub gdy program CanUpdate zwraca wartość niezerową.
Aby uzyskać powiązane informacje, zobacz temat "Delete Method" (Usuwanie metody) w pomocy dao.
CDaoTableDef::GetAttributes
CDaoTableDef
W przypadku obiektu wartość zwracana określa cechy tabeli reprezentowanej przez CDaoTableDef
obiekt i może być sumą tych stałych:
long GetAttributes();
Wartość zwracana
Zwraca wartość wskazującą co najmniej jedną cechę CDaoTableDef
obiektu.
Uwagi
Stała | opis |
---|---|
dbAttachExclusive |
W przypadku baz danych korzystających z aparatu bazy danych Microsoft Jet wskazuje, że tabela jest dołączoną tabelą otwartą do wyłącznego użytku. |
dbAttachSavePWD |
W przypadku baz danych korzystających z aparatu bazy danych Microsoft Jet wskazuje, że identyfikator użytkownika i hasło dołączonej tabeli są zapisywane przy użyciu informacji o połączeniu. |
dbSystemObject |
Wskazuje, że tabela jest tabelą systemową dostarczaną przez aparat bazy danych Microsoft Jet. |
dbHiddenObject |
Wskazuje, że tabela jest ukrytą tabelą dostarczaną przez aparat bazy danych Microsoft Jet. |
dbAttachedTable |
Wskazuje, że tabela jest dołączoną tabelą z bazy danych innej niż ODBC, takiej jak baza danych Paradox. |
dbAttachedODBC |
Wskazuje, że tabela jest dołączoną tabelą z bazy danych ODBC, takiej jak Microsoft SQL Server. |
Tabela systemowa to tabela utworzona przez aparat bazy danych Microsoft Jet zawierający różne informacje wewnętrzne.
Ukryta tabela to tabela utworzona do tymczasowego użycia przez aparat bazy danych Microsoft Jet.
Aby uzyskać powiązane informacje, zobacz temat "Właściwości atrybutów" w pomocy dao.
CDaoTableDef::GetConnect
Wywołaj tę funkcję składową, aby uzyskać parametry połączenia dla źródła danych.
CString GetConnect();
Wartość zwracana
CString
Obiekt zawierający ścieżkę i typ bazy danych dla tabeli.
Uwagi
CDaoTableDef
W przypadku obiektu reprezentującego dołączoną tabelę CString
obiekt składa się z jednej lub dwóch części (specyfikatora typu bazy danych i ścieżki do bazy danych).
Ścieżka, jak pokazano w poniższej tabeli, to pełna ścieżka katalogu zawierającego pliki bazy danych i musi być poprzedzona identyfikatorem "DATABASE=". W niektórych przypadkach (podobnie jak w przypadku baz danych programu Microsoft Jet i Microsoft Excel) określona nazwa pliku jest uwzględniona w argumencie ścieżki bazy danych.
Tabela w tabeli CDaoTableDef::SetConnect zawiera możliwe typy baz danych i odpowiadające im specyfikatory i ścieżki bazy danych:
W przypadku tabel bazowych bazy danych microsoft Jet specyfikator jest pustym ciągiem ("").
Jeśli hasło jest wymagane, ale nie podano, sterownik ODBC wyświetla okno dialogowe logowania przy pierwszym zamknięciu i ponownym otwarciu tabeli. Jeśli dołączona tabela ma dbAttachSavePWD
atrybut, monit logowania nie będzie wyświetlany po ponownym otwarciu tabeli.
Aby uzyskać powiązane informacje, zobacz temat "Connect Property" (Łączenie właściwości) w pomocy dao.
CDaoTableDef::GetDateCreated
Wywołaj tę funkcję, aby określić datę i godzinę utworzenia tabeli bazowej CDaoTableDef
obiektu.
COleDateTime GetDateCreated();
Wartość zwracana
Wartość zawierająca datę i godzinę utworzenia tabeli bazowej CDaoTableDef
obiektu.
Uwagi
Ustawienia daty i godziny pochodzą z komputera, na którym utworzono lub ostatnio zaktualizowano tabelę podstawową. W środowisku z wieloma użytkownikami użytkownicy powinni uzyskać te ustawienia bezpośrednio z serwera plików, aby uniknąć rozbieżności; oznacza to, że wszyscy klienci powinni używać źródła czasu "standardowego" — być może z jednego serwera.
Aby uzyskać powiązane informacje, zobacz temat "DateCreated, LastUpdated Properties" w Pomocy dao.
CDaoTableDef::GetDateLastUpdated
Wywołaj tę funkcję, aby określić datę i godzinę ostatniej aktualizacji tabeli bazowej CDaoTableDef
obiektu.
COleDateTime GetDateLastUpdated();
Wartość zwracana
Wartość zawierająca datę i godzinę tabeli bazowej CDaoTableDef
obiektu została ostatnio zaktualizowana.
Uwagi
Ustawienia daty i godziny pochodzą z komputera, na którym utworzono lub ostatnio zaktualizowano tabelę podstawową. W środowisku z wieloma użytkownikami użytkownicy powinni uzyskać te ustawienia bezpośrednio z serwera plików, aby uniknąć rozbieżności; oznacza to, że wszyscy klienci powinni używać źródła czasu "standardowego" — być może z jednego serwera.
Aby uzyskać powiązane informacje, zobacz temat "DateCreated, LastUpdated Properties" w Pomocy dao.
CDaoTableDef::GetFieldCount
Wywołaj tę funkcję składową, aby pobrać liczbę pól zdefiniowanych w tabeli.
short GetFieldCount();
Wartość zwracana
Liczba pól w tabeli.
Uwagi
Jeśli jej wartość to 0, w kolekcji nie ma żadnych obiektów.
Aby uzyskać powiązane informacje, zobacz temat "Count Property" (Zlicz właściwość) w pomocy dao.
CDaoTableDef::GetFieldInfo
Wywołaj tę funkcję składową, aby uzyskać różne rodzaje informacji o polu zdefiniowanym w definicji tabeli.
void GetFieldInfo(
int nIndex,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetFieldInfo(
LPCTSTR lpszName,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Parametry
nIndex
Indeks obiektu pola w kolekcji Pola opartej na zera tabeli dla wyszukiwania według indeksu.
fieldinfo
Odwołanie do struktury CDaoFieldInfo .
dwInfoOptions
Opcje określające, które informacje o polu mają być pobierane. Dostępne opcje są wymienione tutaj wraz z tym, co powodują zwrócenie funkcji:
AFX_DAO_PRIMARY_INFO
(Ustawienie domyślne) Nazwa, typ, rozmiar, atrybuty. Użyj tej opcji, aby uzyskać najszybszą wydajność.AFX_DAO_SECONDARY_INFO
Podstawowe informacje oraz: Pozycja porządkowa, Wymagana, Zezwalaj na długość zerową, Sortowanie kolejności, Nazwa zagraniczna, Pole źródłowe, Tabela źródłowaAFX_DAO_ALL_INFO
Podstawowe i pomocnicze informacje oraz: Reguła walidacji, Tekst walidacji, Wartość domyślna
lpszName
Wskaźnik do nazwy obiektu pola, aby wyszukać według nazwy. Nazwa jest ciągiem zawierającym maksymalnie 64 znaki, które unikatowo nazywają to pole.
Uwagi
Jedna wersja funkcji umożliwia wyszukanie pola według indeksu. Druga wersja umożliwia wyszukanie pola według nazwy.
Aby uzyskać opis zwróconych informacji, zobacz strukturę CDaoFieldInfo . Ta struktura zawiera elementy członkowskie, które odpowiadają elementom informacji wymienionych powyżej w opisie dwInfoOptions. Gdy żądasz informacji na jednym poziomie, uzyskasz również informacje dotyczące wszystkich poprzednich poziomów.
Aby uzyskać powiązane informacje, zobacz temat "Właściwości atrybutów" w pomocy dao.
CDaoTableDef::GetIndexCount
Wywołaj tę funkcję składową, aby uzyskać liczbę indeksów dla tabeli.
short GetIndexCount();
Wartość zwracana
Liczba indeksów dla tabeli.
Uwagi
Jeśli jej wartość to 0, w kolekcji nie ma żadnych indeksów.
Aby uzyskać powiązane informacje, zobacz temat "Count Property" (Zlicz właściwość) w pomocy dao.
CDaoTableDef::GetIndexInfo
Wywołaj tę funkcję składową, aby uzyskać różne rodzaje informacji o indeksie zdefiniowanym w definicji tabeli.
void GetIndexInfo(
int nIndex,
CDaoIndexInfo& indexinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetIndexInfo(
LPCTSTR lpszName,
CDaoIndexInfo& indexinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Parametry
nIndex
Indeks liczbowy obiektu Index w kolekcji indeksów opartych na zera tabeli dla wyszukiwania według jego pozycji w kolekcji.
indexinfo
Odwołanie do struktury CDaoIndexInfo .
dwInfoOptions
Opcje określające, które informacje o indeksie mają być pobierane. Dostępne opcje są wymienione tutaj wraz z tym, co powodują zwrócenie funkcji:
AFX_DAO_PRIMARY_INFO
Nazwa, Informacje o polu, Pola. Użyj tej opcji, aby uzyskać najszybszą wydajność.AFX_DAO_SECONDARY_INFO
Podstawowe informacje oraz: Primary, Unique, Clustered, Ignore Nulls, Required, ForeignAFX_DAO_ALL_INFO
Podstawowe i pomocnicze informacje oraz: Liczba unikatowych
lpszName
Wskaźnik do nazwy obiektu indeksu, aby wyszukać według nazwy.
Uwagi
Jedna wersja funkcji umożliwia wyszukanie indeksu według jego pozycji w kolekcji. Druga wersja umożliwia wyszukiwanie indeksu według nazwy.
Aby uzyskać opis zwróconych informacji, zobacz strukturę CDaoIndexInfo . Ta struktura zawiera elementy członkowskie, które odpowiadają elementom informacji wymienionych powyżej w opisie dwInfoOptions. Gdy żądasz informacji na jednym poziomie, uzyskasz również informacje dotyczące wszystkich poprzednich poziomów.
Aby uzyskać powiązane informacje, zobacz temat "Właściwości atrybutów" w pomocy dao.
CDaoTableDef::GetName
Wywołaj tę funkcję składową, aby uzyskać zdefiniowaną przez użytkownika nazwę tabeli bazowej.
CString GetName();
Wartość zwracana
Zdefiniowana przez użytkownika nazwa tabeli.
Uwagi
Ta nazwa zaczyna się literą i może zawierać maksymalnie 64 znaki. Może zawierać liczby i znaki podkreślenia, ale nie może zawierać znaków interpunkcyjnych ani spacji.
Aby uzyskać powiązane informacje, zobacz temat "Name Property" (Nazwa właściwości) w pomocy dao.
CDaoTableDef::GetRecordCount
Wywołaj tę funkcję składową, aby dowiedzieć się, ile rekordów znajduje się w CDaoTableDef
obiekcie.
long GetRecordCount();
Wartość zwracana
Liczba rekordów, do których uzyskuje się dostęp w obiekcie tabledef.
Uwagi
Wywołanie GetRecordCount
obiektu typu CDaoTableDef
tabeli odzwierciedla przybliżoną liczbę rekordów w tabeli i ma to wpływ natychmiast po dodaniu i usunięciu rekordów tabeli. Wycofane transakcje będą wyświetlane jako część liczby rekordów do momentu wywołania CDaoWorkSpace ::CompactDatabase. CDaoTableDef
Obiekt bez rekordów ma ustawienie właściwości licznika rekordów 0. Podczas pracy z dołączonymi tabelami lub bazami danych GetRecordCount
ODBC zawsze zwraca wartość -1.
Aby uzyskać powiązane informacje, zobacz temat "RecordCount Property" (Właściwość rekordu) w pomocy języka DAO.
CDaoTableDef::GetSourceTableName
Wywołaj tę funkcję składową, aby pobrać nazwę dołączonej tabeli w źródłowej bazie danych.
CString GetSourceTableName();
Wartość zwracana
CString
Obiekt, który określa nazwę źródłową dołączonej tabeli lub pusty ciąg, jeśli natywna tabela danych.
Uwagi
Dołączona tabela to tabela w innej bazie danych połączonej z bazą danych Microsoft Jet. Dane dla dołączonych tabel pozostają w zewnętrznej bazie danych, gdzie mogą być manipulowane przez inne aplikacje.
Aby uzyskać powiązane informacje, zobacz temat "SourceTableName Property" (Właściwość SourceTableName) w pomocy dao.
CDaoTableDef::GetValidationRule
Wywołaj tę funkcję składową, aby pobrać regułę poprawności dla definicji tabeli.
CString GetValidationRule();
Wartość zwracana
CString
Obiekt, który weryfikuje dane w polu w miarę ich zmiany lub dodawania do tabeli.
Uwagi
Reguły walidacji są używane w połączeniu z operacjami aktualizacji. Jeśli tabeladef zawiera regułę sprawdzania poprawności, aktualizacje tej definicji tabeli muszą odpowiadać wstępnie określonym kryteriom przed zmianą danych. Jeśli zmiana nie jest zgodna z kryteriami, zostanie zgłoszony wyjątek zawierający wartość GetValidationText . CDaoTableDef
W przypadku obiektu jest to CString
tylko do odczytu dołączonej tabeli i odczyt/zapis dla tabeli podstawowej.
Aby uzyskać powiązane informacje, zobacz temat "ValidationRule Property" (Właściwość ValidationRule) w pomocy języka DAO.
CDaoTableDef::GetValidationText
Wywołaj tę funkcję, aby pobrać ciąg do wyświetlenia, gdy użytkownik wprowadzi dane niezgodne z regułą walidacji.
CString GetValidationText();
Wartość zwracana
CString
Obiekt określający tekst wyświetlany, jeśli użytkownik wprowadza dane niezgodne z regułą walidacji.
Uwagi
CDaoTableDef
W przypadku obiektu jest to CString
tylko do odczytu dołączonej tabeli i odczyt/zapis dla tabeli podstawowej.
Aby uzyskać powiązane informacje, zobacz temat "ValidationText Property" (Właściwość ValidationText) w pomocy dao.
CDaoTableDef::IsOpen
Wywołaj tę funkcję składową, aby określić, czy CDaoTableDef
obiekt jest obecnie otwarty.
BOOL IsOpen() const;
Wartość zwracana
Nonzero, jeśli CDaoTableDef
obiekt jest otwarty; w przeciwnym razie 0.
Uwagi
CDaoTableDef::m_pDatabase
Zawiera wskaźnik do obiektu CDaoDatabase dla tej tabeli.
Uwagi
CDaoTableDef::m_pDAOTableDef
Zawiera wskaźnik do interfejsu OLE dla obiektu tabledef obiektu DAO bazowego CDaoTableDef
obiektu .
Uwagi
Użyj tego wskaźnika, jeśli chcesz uzyskać bezpośredni dostęp do interfejsu DAO.
CDaoTableDef::Open
Wywołaj tę funkcję składową, aby otworzyć definicję tabeli wcześniej zapisaną w kolekcji TableDef bazy danych.
virtual void Open(LPCTSTR lpszName);
Parametry
lpszName
Wskaźnik do ciągu, który określa nazwę tabeli.
Uwagi
CDaoTableDef::RefreshLink
Wywołaj tę funkcję składową, aby zaktualizować informacje o połączeniu dla dołączonej tabeli.
void RefreshLink();
Uwagi
Informacje o połączeniu dla dołączonej tabeli można zmienić, wywołując metodę SetConnect dla odpowiedniego CDaoTableDef
obiektu, a następnie używając funkcji składowej RefreshLink
w celu zaktualizowania informacji. Po wywołaniu RefreshLink
metody właściwości dołączonej tabeli nie zostaną zmienione.
Aby wymusić zastosowanie zmodyfikowanych informacji o połączeniu, wszystkie otwarte obiekty CDaoRecordset oparte na tej definicji tabeli muszą być zamknięte.
Aby uzyskać powiązane informacje, zobacz temat "RefreshLink Method" (Metoda RefreshLink) w pomocy dao.
CDaoTableDef::SetAttributes
Ustawia wartość wskazującą co najmniej jedną cechę CDaoTableDef
obiektu.
void SetAttributes(long lAttributes);
Parametry
lAttributes
Cechy tabeli reprezentowane przez CDaoTableDef
obiekt i mogą być sumą tych stałych:
Stała | opis |
---|---|
dbAttachExclusive |
W przypadku baz danych korzystających z aparatu bazy danych Microsoft Jet wskazuje, że tabela jest dołączoną tabelą otwartą do wyłącznego użytku. |
dbAttachSavePWD |
W przypadku baz danych korzystających z aparatu bazy danych Microsoft Jet wskazuje, że identyfikator użytkownika i hasło dołączonej tabeli są zapisywane przy użyciu informacji o połączeniu. |
dbSystemObject |
Wskazuje, że tabela jest tabelą systemową dostarczaną przez aparat bazy danych Microsoft Jet. |
dbHiddenObject |
Wskazuje, że tabela jest ukrytą tabelą dostarczaną przez aparat bazy danych Microsoft Jet. |
Uwagi
Podczas ustawiania wielu atrybutów można je połączyć, sumując odpowiednie stałe przy użyciu operatora bitowego OR. Ustawienie dbAttachExclusive
w nieprzyłączonej tabeli powoduje wyjątek. Połączenie następujących wartości powoduje również wyjątek:
dbAttachExclusive | dbAttachedODBC
dbAttachSavePWD | dbAttachedTable
Aby uzyskać powiązane informacje, zobacz temat "Właściwości atrybutów" w pomocy dao.
CDaoTableDef::SetConnect
CDaoTableDef
W przypadku obiektu reprezentującego dołączoną tabelę obiekt ciągu składa się z jednej lub dwóch części (specyfikatora typu bazy danych i ścieżki do bazy danych).
void SetConnect(LPCTSTR lpszConnect);
Parametry
lpszConnect
Wskaźnik do wyrażenia ciągu, który określa dodatkowe parametry do przekazania do odBC lub instalowanych sterowników ISAM.
Uwagi
Ścieżka, jak pokazano w poniższej tabeli, to pełna ścieżka katalogu zawierającego pliki bazy danych i musi być poprzedzona identyfikatorem "DATABASE=". W niektórych przypadkach (podobnie jak w przypadku baz danych programu Microsoft Jet i Microsoft Excel) określona nazwa pliku jest uwzględniona w argumencie ścieżki bazy danych.
Uwaga
Nie należy dołączać białych znaków wokół instrukcji path znaku równości w formularzu "DATABASE=drive:\\path". Spowoduje to zgłoszenie wyjątku i niepowodzenie połączenia.
W poniższej tabeli przedstawiono możliwe typy baz danych i odpowiadające im specyfikatory i ścieżki bazy danych:
Typ bazy danych | Specyfikator | Ścieżka |
---|---|---|
Baza danych korzystająca z aparatu bazy danych Jet | "[ database ];" |
" drive :\\ ścieżka\\ nazwa pliku. 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 :\\ ścieżka\\ nazwa pliku.XLS" |
Excel 4.0 | "Excel 4.0;" | " drive :\\ ścieżka\\ nazwa pliku.XLS" |
Excel 5.0 lub Excel 95 | "Excel 5.0;" | " drive :\\ ścieżka\\ nazwa pliku.XLS" |
Excel 97 | "Excel 8.0;" | " drive :\\ ścieżka\ nazwa pliku.XLS" |
Importowanie kodu HTML | "Import HTML;" | " drive :\\ ścieżka\ nazwa pliku" |
Eksport HTML | "Eksport HTML;" | " drive :\\ path" |
Text | "Tekst;" | "drive:\\path" |
ODBC | "ODBC; DATABASE= database ; UID= użytkownik; PWD = hasło; DSN = datasourcename; LOGINTIMEOUT= seconds;" (Może to nie być kompletna parametry połączenia dla wszystkich serwerów; jest to tylko przykład. Bardzo ważne jest, aby nie mieć spacji między parametrami). |
Brak |
Exchange | "Exchange; MAPILEVEL = ścieżka folderu; [TABLETYPE={ 0 | 1 };] [PROFILE= profil;] [PWD= hasło;] [DATABASE= database ;]" |
"drive:\\ path\\ nazwa pliku. MDB" |
Uwaga
Btrieve nie jest już obsługiwany jako DAO 3.5.
W parametry połączenia s należy użyć podwójnego ukośnika odwrotnego (\\). Jeśli zmodyfikowano właściwości istniejącego połączenia przy użyciu metody SetConnect
, należy następnie wywołać metodę RefreshLink. Jeśli inicjujesz właściwości połączenia przy użyciu metody SetConnect
, nie musisz wywoływać RefreshLink
metody , ale jeśli chcesz to zrobić, najpierw dołącz tabelędef.
Jeśli hasło jest wymagane, ale nie podano, sterownik ODBC wyświetla okno dialogowe logowania przy pierwszym zamknięciu i ponownym otwarciu tabeli.
Można ustawić parametry połączenia dla CDaoTableDef
obiektu, podając argument źródłowy funkcji składowejCreate
. Możesz sprawdzić ustawienie, aby określić typ, ścieżkę, identyfikator użytkownika, hasło lub źródło danych ODBC bazy danych. Aby uzyskać więcej informacji, zobacz dokumentację dla określonego sterownika.
Aby uzyskać powiązane informacje, zobacz temat "Connect Property" (Łączenie właściwości) w pomocy dao.
CDaoTableDef::SetName
Wywołaj tę funkcję składową, aby ustawić nazwę zdefiniowaną przez użytkownika dla tabeli.
void SetName(LPCTSTR lpszName);
Parametry
lpszName
Wskaźnik do wyrażenia ciągu, który określa nazwę tabeli.
Uwagi
Nazwa musi zaczynać się literą i może zawierać maksymalnie 64 znaki. Może zawierać liczby i znaki podkreślenia, ale nie może zawierać znaków interpunkcyjnych ani spacji.
Aby uzyskać powiązane informacje, zobacz temat "Name Property" (Nazwa właściwości) w pomocy dao.
CDaoTableDef::SetSourceTableName
Wywołaj tę funkcję składową, aby określić nazwę dołączonej tabeli lub nazwę tabeli bazowej, na której CDaoTableDef
jest oparty obiekt, ponieważ istnieje w oryginalnym źródle danych.
void SetSourceTableName(LPCTSTR lpszSrcTableName);
Parametry
lpszSrcTableName
Wskaźnik do wyrażenia ciągu, który określa nazwę tabeli w zewnętrznej bazie danych. W przypadku tabeli podstawowej ustawienie jest pustym ciągiem ("").
Uwagi
Następnie należy wywołać metodę RefreshLink. To ustawienie właściwości jest puste dla tabeli podstawowej i odczyt/zapis dla dołączonej tabeli lub obiektu, który nie jest dołączany do kolekcji.
Aby uzyskać powiązane informacje, zobacz temat "SourceTableName Property" (Właściwość SourceTableName) w pomocy dao.
CDaoTableDef::SetValidationRule
Wywołaj tę funkcję składową, aby ustawić regułę poprawności dla tabelidef.
void SetValidationRule(LPCTSTR lpszValidationRule);
Parametry
lpszValidationRule
Wskaźnik do wyrażenia ciągu, który weryfikuje operację.
Uwagi
Reguły walidacji są używane w połączeniu z operacjami aktualizacji. Jeśli tabeladef zawiera regułę sprawdzania poprawności, aktualizacje tej definicji tabeli muszą odpowiadać wstępnie określonym kryteriom przed zmianą danych. Jeśli zmiana nie jest zgodna z kryteriami, zostanie wyświetlony wyjątek zawierający tekst getValidationText .
Walidacja jest obsługiwana tylko w przypadku baz danych korzystających z aparatu bazy danych Microsoft Jet. Wyrażenie nie może odwoływać się do funkcji zdefiniowanych przez użytkownika, funkcji agregujących domeny, funkcji agregujących SQL lub zapytań. Reguła sprawdzania CDaoTableDef
poprawności obiektu może odwoływać się do wielu pól w tym obiekcie.
Na przykład w przypadku pól o nazwach hire_date i termination_date reguła sprawdzania poprawności może być następująca:
myTableDef.SetValidationRule(_T("termination_date > hire_date"));
Aby uzyskać powiązane informacje, zobacz temat "ValidationRule Property" (Właściwość ValidationRule) w pomocy języka DAO.
CDaoTableDef::SetValidationText
Wywołaj tę funkcję składową, aby ustawić tekst wyjątku reguły CDaoTableDef
sprawdzania poprawności dla obiektu z bazową tabelą bazową obsługiwaną przez aparat bazy danych Microsoft Jet.
void SetValidationText(LPCTSTR lpszValidationText);
Parametry
lpszValidationText
Wskaźnik do wyrażenia ciągu, który określa tekst wyświetlany, jeśli wprowadzone dane są nieprawidłowe.
Uwagi
Nie można ustawić tekstu walidacji dołączonej tabeli.
Aby uzyskać powiązane informacje, zobacz temat "ValidationText Property" (Właściwość ValidationText) w pomocy dao.
Zobacz też
Klasa CObject
Wykres hierarchii
Klasa CDaoDatabase
Klasa CDaoRecordset