Класс CDaoTableDef
Представляет хранимое определение базовой или подключенной таблицы.
Примечание.
DAO поддерживается через Office 2013. DAO 3.6 является окончательной версией, и она считается устаревшей.
Синтаксис
class CDaoTableDef : public CObject
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CDaoTableDef::CDaoTableDef | Формирует объект CDaoTableDef . |
Открытые методы
Имя | Описание |
---|---|
CDaoTableDef::Append | Добавляет новую таблицу в базу данных. |
CDaoTableDef::CanUpdate | Возвращает ненулевое значение, если таблицу можно обновить (можно изменить определение полей или свойств таблицы). |
CDaoTableDef::Close | Закрывает открытое табличное значение. |
CDaoTableDef::Create | Создает таблицу, которую можно добавить в базу данных с помощью add. |
CDaoTableDef::CreateField | Вызывается для создания поля для таблицы. |
CDaoTableDef::CreateIndex | Вызывается для создания индекса для таблицы. |
CDaoTableDef::D eleteField | Вызывается для удаления поля из таблицы. |
CDaoTableDef::D eleteIndex | Вызывается для удаления индекса из таблицы. |
CDaoTableDef::GetAttributes | Возвращает значение, указывающее одну или несколько характеристик CDaoTableDef объекта. |
CDaoTableDef::GetConnect | Возвращает значение, которое предоставляет сведения о источнике таблицы. |
CDaoTableDef::GetDateCreated | Возвращает дату и время создания базовой таблицы, базовой CDaoTableDef базы данных объекта. |
CDaoTableDef::GetDateLastUpdated | Возвращает дату и время последнего изменения, внесенного в структуру базовой таблицы. |
CDaoTableDef::GetFieldCount | Возвращает значение, представляющее количество полей в таблице. |
CDaoTableDef::GetFieldInfo | Возвращает определенные типы сведений о полях в таблице. |
CDaoTableDef::GetIndexCount | Возвращает количество индексов для таблицы. |
CDaoTableDef::GetIndexInfo | Возвращает определенные типы сведений об индексах таблицы. |
CDaoTableDef::GetName | Возвращает определяемое пользователем имя таблицы. |
CDaoTableDef::GetRecordCount | Возвращает количество записей в таблице. |
CDaoTableDef::GetSourceTableName | Возвращает значение, указывающее имя присоединенной таблицы в исходной базе данных. |
CDaoTableDef::GetValidationRule | Возвращает значение, которое проверяет данные в поле при изменении или добавлении в таблицу. |
CDaoTableDef::GetValidationText | Возвращает значение, указывающее текст сообщения, отображаемого приложением, если значение объекта Field не удовлетворяет указанному правилу проверки. |
CDaoTableDef::IsOpen | Возвращает ненулевое значение, если таблица открыта. |
CDaoTableDef::Open | Открывает существующее табличное значение, хранящееся в коллекции TableDef базы данных. |
CDaoTableDef::RefreshLink | Обновляет сведения о подключении для подключенной таблицы. |
CDaoTableDef::SetAttributes | Задает значение, указывающее одну или несколько характеристик CDaoTableDef объекта. |
CDaoTableDef::SetConnect | Задает значение, которое предоставляет сведения о источнике таблицы. |
CDaoTableDef::SetName | Задает имя таблицы. |
CDaoTableDef::SetSourceTableName | Задает значение, указывающее имя присоединенной таблицы в исходной базе данных. |
CDaoTableDef::SetValidationRule | Задает значение, которое проверяет данные в поле при изменении или добавлении в таблицу. |
CDaoTableDef::SetValidationText | Задает значение, указывающее текст сообщения, отображаемого приложением, если значение объекта Field не удовлетворяет указанному правилу проверки. |
Открытые члены данных
Имя | Описание |
---|---|
CDaoTableDef::m_pDAOTableDef | Указатель на интерфейс DAO, базовый объект tabledef. |
CDaoTableDef::m_pDatabase | Исходная база данных для этой таблицы. |
Замечания
Каждый объект базы данных DAO поддерживает коллекцию с именем TableDefs, которая содержит все сохраненные объекты таблицы DAO.
Вы управляете определением таблицы с помощью CDaoTableDef
объекта. Например, доступны следующие возможности:
Проверьте структуру полей и индекса любой локальной, подключенной или внешней таблицы в базе данных.
SetConnect
SetSourceTableName
Вызовите функции-члены для вложенных таблиц и используйтеRefreshLink
функцию-член для обновления подключений к подключенным таблицам.Вызовите функцию-член,
CanUpdate
чтобы определить, можно ли изменять определения полей в таблице.Получение или установка условий проверки с помощью
GetValidationRule
функций иSetValidationRule
GetValidationText
SetValidationText
элементов.Используйте функцию-член для
Open
создания объекта типаCDaoRecordset
моментального снимка таблицы, dynaset или моментального снимка.Примечание.
Классы базы данных DAO отличаются от классов баз данных MFC на основе open Database Connectivity (ODBC). Все имена классов базы данных DAO имеют префикс CDao. Вы по-прежнему можете получить доступ к источникам данных ODBC с помощью классов DAO; Классы DAO обычно предлагают превосходные возможности, так как они относятся к ядру СУБД Microsoft Jet.
Использование объектов tabledef для работы с существующей таблицей или создания новой таблицы
Во всех случаях сначала создайте
CDaoTableDef
объект, указав указатель на объект CDaoDatabase , к которому принадлежит таблица.Затем выполните следующие действия в зависимости от того, что вы хотите:
Чтобы использовать существующую сохраненную таблицу, вызовите функцию open-члена объекта tabledef, указав имя сохраненной таблицы.
Чтобы создать новую таблицу, вызовите функцию создания элемента объекта tabledef, указав имя таблицы. Вызовите CreateField и CreateIndex , чтобы добавить поля и индексы в таблицу.
Вызовите добавление , чтобы сохранить таблицу, добавив ее в коллекцию TableDefs базы данных.
Create
помещает табличное значение в открытое состояние, поэтому после вызова не вызывайтеCreate
Open
.Совет
Самый простой способ создать сохраненные таблицы — создать их и сохранить их в базе данных с помощью Microsoft Access. Затем их можно открыть и использовать в коде MFC.
Чтобы использовать объект tabledef, который вы открыли или создали, создайте и откройте CDaoRecordset
объект, указав имя табличного поля со dbOpenTable
значением в параметре nOpenType .
Чтобы использовать объект tabledef для создания CDaoRecordset
объекта, обычно создается или открывается табличное значение, как описано выше, а затем создается объект набора записей, передав указатель на объект tabledef при вызове CDaoRecordset::Open. Передаваемая таблица должна находиться в открытом состоянии. Дополнительные сведения см. в классе CDaoRecordset.
Завершив использование табличного объекта, вызовите ее функцию-член Close , а затем уничтожить объект tabledef.
Иерархия наследования
CDaoTableDef
Требования
Заголовок: afxdao.h
CDaoTableDef::Append
Вызовите эту функцию-член после вызова Create , чтобы создать новый объект tabledef, чтобы сохранить табличное значение в базе данных.
virtual void Append();
Замечания
Функция добавляет объект в коллекцию TableDefs базы данных. Табличное значение можно использовать в качестве временного объекта, определяя его, не добавляя его, но если вы хотите сохранить и использовать его, необходимо вызвать Append
.
Примечание.
При попытке добавить неименованное табличное значение (содержащее пустую или пустую строку), MFC создает исключение.
Дополнительные сведения см. в разделе "Метод добавления" в справке DAO.
CDaoTableDef::CanUpdate
Вызовите эту функцию-член, чтобы определить, можно ли изменить определение таблицы, базовой CDaoTableDef
для объекта.
BOOL CanUpdate();
Возвращаемое значение
Ненулевое значение, если структура таблицы (схема) может быть изменена (добавление или удаление полей и индексов), в противном случае — 0.
Замечания
По умолчанию только что созданная таблица, базовая CDaoTableDef
для объекта, может быть обновлена, а присоединенная таблица, лежащая CDaoTableDef
в основе объекта, не может быть обновлена. CDaoTableDef
Объект может быть обновляемым, даже если результирующий набор записей не обновляется.
Дополнительные сведения см. в разделе "Обновляемое свойство" в справке DAO.
CDaoTableDef::CDaoTableDef
Формирует объект CDaoTableDef
.
CDaoTableDef(CDaoDatabase* pDatabase);
Параметры
pDatabase
Указатель на объект CDaoDatabase .
Замечания
После создания объекта необходимо вызвать функцию Create или Open member. Завершив работу с объектом, необходимо вызвать функцию Close-члена и уничтожить CDaoTableDef
объект.
CDaoTableDef::Close
Вызовите эту функцию-член, чтобы закрыть и освободить объект tabledef.
virtual void Close();
Замечания
Обычно после вызова Close
удаляется объект tabledef, если он был выделен new
.
После вызова Close
можно снова вызвать open. Это позволяет повторно использовать объект tabledef.
Дополнительные сведения см. в разделе "Закрыть метод" в справке DAO.
CDaoTableDef::Create
Вызовите эту функцию-член, чтобы создать новую сохраненную таблицу.
virtual void Create(
LPCTSTR lpszName,
long lAttributes = 0,
LPCTSTR lpszSrcTable = NULL,
LPCTSTR lpszConnect = NULL);
Параметры
lpszName
Указатель на строку, содержащую имя таблицы.
lAttributes
Значение, соответствующее характеристикам таблицы, представленной объектом tabledef. Для объединения любой из следующих констант можно использовать побитовую или побитовую.
Константа | Description |
---|---|
dbAttachExclusive |
Для баз данных, использующих ядро СУБД Microsoft Jet, указывает, что таблица является подключенной таблицей, открытой для монопольного использования. |
dbAttachSavePWD |
Для баз данных, использующих ядро СУБД Microsoft Jet, указывает, что идентификатор пользователя и пароль для подключенной таблицы сохраняются со сведениями о подключении. |
dbSystemObject |
Указывает, что таблица — это системная таблица, предоставляемая ядром СУБД Microsoft Jet. |
dbHiddenObject |
Указывает, что таблица является скрытой таблицей, предоставляемой ядром СУБД Microsoft Jet. |
lpszSrcTable
Указатель на строку, содержащую имя исходной таблицы. По умолчанию это значение инициализируется как NULL.
lpszConnect
Указатель на строку, содержащую строка подключения по умолчанию. По умолчанию это значение инициализируется как NULL.
Замечания
После того как вы назвали табличное значение, можно вызвать Добавление , чтобы сохранить табличное значение в коллекции TableDefs базы данных. После вызова Append
табличное представление находится в открытом состоянии, и его можно использовать для создания объекта CDaoRecordset .
Дополнительные сведения см. в разделе "Метод CreateTableDef" в справке DAO.
CDaoTableDef::CreateField
Вызовите эту функцию-член, чтобы добавить поле в таблицу.
void CreateField(
LPCTSTR lpszName,
short nType,
long lSize,
long lAttributes = 0);
void CreateField(CDaoFieldInfo& fieldinfo);
Параметры
lpszName
Указатель на строковое выражение, указывающее имя этого поля.
nType
Значение, указывающее тип данных поля. Параметр может быть одним из следующих значений:
Тип | Размер (в байтах) | Description |
---|---|---|
dbBoolean |
1 байт | BOOL |
dbByte |
BYTE | |
dbInteger |
2 | INT |
dbLong |
4 | длинный |
dbCurrency |
8 | Валюта ( COleCurrency) |
dbSingle |
4 | с плавающей запятой |
dbDouble |
8 | двойной точности |
dbDate |
8 | Date/Time ( COleDateTime) |
dbText |
1 - 255 | Текст ( CString) |
dbLongBinary |
0 | Long Binary (OLE Object), CLongBinary или CByteArray |
dbMemo |
0 | Memo ( CString) |
lSize
Значение, указывающее максимальный размер поля в байтах, содержащего текст, или фиксированный размер поля, содержащего текст или числовые значения. Параметр lSize игнорируется для всех, кроме текстовых полей.
lAttributes
Значение, соответствующее характеристикам поля и которое можно объединить с помощью побитового ИЛИ.
Константа | Description |
---|---|
dbFixedField |
Размер поля исправлен (по умолчанию для числовых полей). |
dbVariableField |
Размер поля — переменная (только текстовые поля). |
dbAutoIncrField |
Значение поля для новых записей автоматически увеличивается до уникального длинного целого числа, которое невозможно изменить. Поддерживается только для таблиц базы данных Microsoft Jet. |
dbUpdatableField |
Значение поля можно изменить. |
dbDescending |
Поле отсортировано по убыванию (Z - A или 100 – 0) (применяется только к объекту Field в коллекции Fields объекта Index). Если эта константа опущена, поле отсортировано по возрастанию (A - Z или 0 – 100) (по умолчанию). |
fieldinfo
Ссылка на структуру CDaoFieldInfo .
Замечания
Объект DAOField
OLE создается и добавляется в коллекцию DAOTableDef
Fields объекта OLE. Помимо использования для изучения свойств объекта, можно также использовать CDaoFieldInfo
для создания входных параметров для создания новых полей в табличном значении. Первая версия CreateField
проще использовать, но если требуется более точное управление, можно использовать вторую версию CreateField
, которая принимает CDaoFieldInfo
параметр.
Если вы используете версию CreateField
, которая принимает CDaoFieldInfo
параметр, необходимо тщательно задать каждый из следующих элементов CDaoFieldInfo
структуры:
m_strName
m_nType
m_lSize
m_lAttributes
m_bAllowZeroLength
Остальные члены CDaoFieldInfo
должны иметь значение 0, FALSE или пустую строку, соответствующую элементу, или CDaoException
может произойти.
Дополнительные сведения см. в разделе "Метод CreateField" в справке DAO.
CDaoTableDef::CreateIndex
Вызовите эту функцию, чтобы добавить индекс в таблицу.
void CreateIndex(CDaoIndexInfo& indexinfo);
Параметры
indexinfo
Ссылка на структуру CDaoIndexInfo .
Замечания
Индексы указывают порядок записей, доступ к которых получен из таблиц базы данных, и принимается ли повторяющиеся записи. Индексы также обеспечивают эффективный доступ к данным.
Вам не нужно создавать индексы для таблиц, но в больших неиндексированных таблицах, доступ к определенной записи или создание набора записей может занять много времени. С другой стороны, создание слишком большого количества индексов замедляет обновление, добавление и удаление операций по мере автоматического обновления всех индексов. Учитывайте эти факторы, так как вы решите, какие индексы необходимо создать.
Необходимо задать следующие элементы CDaoIndexInfo
структуры:
m_strName
Необходимо указать имя.m_pFieldInfos
Должен указывать на массивCDaoIndexFieldInfo
структур.m_nFields
Необходимо указать количество полей в массивеCDaoFieldInfo
структур.
Остальные члены будут игнорироваться, если задано значение FALSE. Кроме того, элемент m_lDistinctCount
игнорируется во время создания индекса.
CDaoTableDef::D eleteField
Вызовите эту функцию-член, чтобы удалить поле и сделать его недоступным.
void DeleteField(LPCTSTR lpszName);
void DeleteField(int nIndex);
Параметры
lpszName
Указатель на строковое выражение, которое является именем существующего поля.
nIndex
Индекс поля в коллекции полей на основе нуля таблицы для поиска по индексу.
Замечания
Эту функцию-член можно использовать в новом объекте, который не был добавлен в базу данных или когда CanUpdate возвращает ненулевое значение.
Дополнительные сведения см. в разделе "Удаление метода" в справке DAO.
CDaoTableDef::D eleteIndex
Вызовите эту функцию-член, чтобы удалить индекс в базовой таблице.
void DeleteIndex(LPCTSTR lpszName);
void DeleteIndex(int nIndex);
Параметры
lpszName
Указатель на строковое выражение, которое является именем существующего индекса.
nIndex
Индекс массива объекта индекса в отсчитываемой от нуля коллекции TableDefs базы данных для поиска по индексу.
Замечания
Эту функцию-член можно использовать в новом объекте, который не был добавлен в базу данных или когда CanUpdate возвращает ненулевое значение.
Дополнительные сведения см. в разделе "Удаление метода" в справке DAO.
CDaoTableDef::GetAttributes
CDaoTableDef
Для объекта возвращаемое значение указывает характеристики таблицы, представленной CDaoTableDef
объектом, и может быть суммой этих констант:
long GetAttributes();
Возвращаемое значение
Возвращает значение, указывающее одну или несколько характеристик CDaoTableDef
объекта.
Замечания
Константа | Description |
---|---|
dbAttachExclusive |
Для баз данных, использующих ядро СУБД Microsoft Jet, указывает, что таблица является подключенной таблицей, открытой для монопольного использования. |
dbAttachSavePWD |
Для баз данных, использующих ядро СУБД Microsoft Jet, указывает, что идентификатор пользователя и пароль для подключенной таблицы сохраняются со сведениями о подключении. |
dbSystemObject |
Указывает, что таблица — это системная таблица, предоставляемая ядром СУБД Microsoft Jet. |
dbHiddenObject |
Указывает, что таблица является скрытой таблицей, предоставляемой ядром СУБД Microsoft Jet. |
dbAttachedTable |
Указывает, что таблица является присоединенной таблицей из базы данных, отличной от ODBC, например базы данных Paradox. |
dbAttachedODBC |
Указывает, что таблица является присоединенной таблицей из базы данных ODBC, например Microsoft SQL Server. |
Системная таблица — это таблица, созданная ядром СУБД Microsoft Jet для хранения различных внутренних сведений.
Скрытая таблица — это таблица, созданная для временного использования ядром СУБД Microsoft Jet.
Дополнительные сведения см. в разделе "Свойство атрибутов" в справке DAO.
CDaoTableDef::GetConnect
Вызовите эту функцию-член, чтобы получить строка подключения для источника данных.
CString GetConnect();
Возвращаемое значение
CString
Объект, содержащий путь и тип базы данных для таблицы.
Замечания
CDaoTableDef
Для объекта, представляющего присоединенную таблицу, CString
объект состоит из одной или двух частей (описатель типа базы данных и пути к базе данных).
Путь, как показано в таблице ниже, — полный путь для каталога, содержащего файлы базы данных, и должен предшествовать идентификатору DATABASE=. В некоторых случаях (как и в базах данных Microsoft Jet и Microsoft Excel), в аргумент пути к базе данных входит определенное имя файла.
Таблица в CDaoTableDef::SetConnect показывает возможные типы баз данных и соответствующие описатели и пути к базе данных:
Для базовых таблиц базы данных Microsoft Jet описатель является пустой строкой ("").
Если пароль является обязательным, но не указан, драйвер ODBC отображает диалоговое окно входа при первом доступе к таблице и повторно, если подключение закрыто и повторно откроется. Если в подключенной таблице есть dbAttachSavePWD
атрибут, запрос входа не будет отображаться при повторном открытии таблицы.
Дополнительные сведения см. в разделе "Подключение свойства" в справке DAO.
CDaoTableDef::GetDateCreated
Вызовите эту функцию, чтобы определить дату и время создания таблицы, базовой CDaoTableDef
для объекта.
COleDateTime GetDateCreated();
Возвращаемое значение
Значение, содержащее дату и время создания таблицы, лежащей в CDaoTableDef
основе объекта.
Замечания
Параметры даты и времени являются производными от компьютера, на котором была создана базовая таблица или последнее обновление. В многопользовательской среде пользователи должны получать эти параметры непосредственно с файлового сервера, чтобы избежать несоответствий; То есть все клиенты должны использовать "стандартный" источник времени — возможно, с одного сервера.
Дополнительные сведения см. в разделе "Свойства DateCreated, LastUpdated" в справке DAO.
CDaoTableDef::GetDateLastUpdated
Вызовите эту функцию, чтобы определить дату и время последнего обновления таблицы, базовой CDaoTableDef
для объекта.
COleDateTime GetDateLastUpdated();
Возвращаемое значение
Значение, содержащее дату и время последнего обновления таблицы, базовой CDaoTableDef
для объекта.
Замечания
Параметры даты и времени являются производными от компьютера, на котором была создана базовая таблица или последнее обновление. В многопользовательской среде пользователи должны получать эти параметры непосредственно с файлового сервера, чтобы избежать несоответствий; То есть все клиенты должны использовать "стандартный" источник времени — возможно, с одного сервера.
Дополнительные сведения см. в разделе "Свойства DateCreated, LastUpdated" в справке DAO.
CDaoTableDef::GetFieldCount
Вызовите эту функцию-член, чтобы получить количество полей, определенных в таблице.
short GetFieldCount();
Возвращаемое значение
Количество полей в таблице.
Замечания
Если его значение равно 0, в коллекции нет объектов.
Дополнительные сведения см. в разделе "Count Property" в справке DAO.
CDaoTableDef::GetFieldInfo
Вызовите эту функцию-член, чтобы получить различные виды сведений о поле, определенное в табличном файле.
void GetFieldInfo(
int nIndex,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetFieldInfo(
LPCTSTR lpszName,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Параметры
nIndex
Индекс объекта поля в отсчитываемой от нуля коллекции полей таблицы для поиска по индексу.
fieldinfo
Ссылка на структуру CDaoFieldInfo .
dwInfoOptions
Параметры, указывающие, какие сведения о поле для получения. Доступные параметры перечислены здесь вместе с тем, что они вызывают возврат функции:
AFX_DAO_PRIMARY_INFO
(по умолчанию) Имя, тип, размер, атрибуты. Используйте этот параметр для максимальной производительности.AFX_DAO_SECONDARY_INFO
Основные сведения, а также: порядковое положение, обязательный, разрешить нулевую длину, сортировку порядка, иностранное имя, исходное поле, исходную таблицуAFX_DAO_ALL_INFO
Основная и вторичная информация, а также: правило проверки, текст проверки, значение по умолчанию
lpszName
Указатель на имя объекта поля для поиска по имени. Имя — это строка с 64 символами, уникальными именами полей.
Замечания
Одна из версий функции позволяет искать поле по индексу. Другая версия позволяет искать поле по имени.
Описание возвращаемых сведений см. в структуре CDaoFieldInfo . Эта структура содержит элементы, соответствующие элементам информации, перечисленным выше в описании dwInfoOptions. При запросе сведений на одном уровне вы также получаете информацию для всех предыдущих уровней.
Дополнительные сведения см. в разделе "Свойство атрибутов" в справке DAO.
CDaoTableDef::GetIndexCount
Вызовите эту функцию-член, чтобы получить количество индексов для таблицы.
short GetIndexCount();
Возвращаемое значение
Количество индексов для таблицы.
Замечания
Если его значение равно 0, в коллекции нет индексов.
Дополнительные сведения см. в разделе "Count Property" в справке DAO.
CDaoTableDef::GetIndexInfo
Вызовите эту функцию-член, чтобы получить различные типы сведений об индексе, определенном в табличном файле.
void GetIndexInfo(
int nIndex,
CDaoIndexInfo& indexinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetIndexInfo(
LPCTSTR lpszName,
CDaoIndexInfo& indexinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Параметры
nIndex
Числовый индекс объекта Index в отсчитываемой от нуля коллекции индексов таблицы для поиска по его позиции в коллекции.
indexinfo
Ссылка на структуру CDaoIndexInfo .
dwInfoOptions
Параметры, определяющие, какие сведения о индексе необходимо получить. Доступные параметры перечислены здесь вместе с тем, что они вызывают возврат функции:
AFX_DAO_PRIMARY_INFO
Имя, сведения о поле, поля. Используйте этот параметр для максимальной производительности.AFX_DAO_SECONDARY_INFO
Основные сведения, а также: первичный, уникальный, кластеризованный, пропускать значения NULL, обязательный, внешнийAFX_DAO_ALL_INFO
Основная и вторичная информация, а также: количество отдельных данных
lpszName
Указатель на имя объекта индекса для поиска по имени.
Замечания
Одна из версий функции позволяет искать индекс по его позиции в коллекции. Другая версия позволяет искать индекс по имени.
Описание возвращаемых сведений см. в структуре CDaoIndexInfo . Эта структура содержит элементы, соответствующие элементам информации, перечисленным выше в описании dwInfoOptions. При запросе сведений на одном уровне вы также получаете информацию для всех предыдущих уровней.
Дополнительные сведения см. в разделе "Свойство атрибутов" в справке DAO.
CDaoTableDef::GetName
Вызовите эту функцию-член, чтобы получить определяемое пользователем имя базовой таблицы.
CString GetName();
Возвращаемое значение
Определяемое пользователем имя таблицы.
Замечания
Это имя начинается с буквы и может содержать не более 64 символов. Он может включать числа и символы подчеркивания, но не могут включать знаки препинания или пробелы.
Дополнительные сведения см. в разделе "Свойство name" в справке DAO.
CDaoTableDef::GetRecordCount
Вызовите эту функцию-член, чтобы узнать, сколько записей находятся в объекте CDaoTableDef
.
long GetRecordCount();
Возвращаемое значение
Количество записей, к которых обращается объект tabledef.
Замечания
Вызов GetRecordCount
объекта табличного типа CDaoTableDef
отражает приблизительное количество записей в таблице и сразу же затрагивается при добавлении и удалении записей таблиц. Откат транзакций будет отображаться в составе счетчика записей до вызова CDaoWorkSpace::CompactDatabase. Объект CDaoTableDef
без записей имеет значение свойства счетчика записей 0. При работе с подключенными таблицами или базами данных GetRecordCount
ODBC всегда возвращает значение -1.
Дополнительные сведения см. в разделе "Свойство RecordCount" в справке DAO.
CDaoTableDef::GetSourceTableName
Вызовите эту функцию-член, чтобы получить имя присоединенной таблицы в исходной базе данных.
CString GetSourceTableName();
Возвращаемое значение
CString
Объект, указывающий исходное имя присоединенной таблицы или пустую строку, если собственная таблица данных.
Замечания
Присоединенная таблица — это таблица в другой базе данных, связанной с базой данных Microsoft Jet. Данные для вложенных таблиц остаются во внешней базе данных, где ее можно управлять другими приложениями.
Дополнительные сведения см. в разделе "Свойство SourceTableName" в справке DAO.
CDaoTableDef::GetValidationRule
Вызовите эту функцию-член, чтобы получить правило проверки для табличного значения.
CString GetValidationRule();
Возвращаемое значение
CString
Объект, проверяющий данные в поле по мере изменения или добавления в таблицу.
Замечания
Правила проверки используются в связи с операциями обновления. Если табличное значение содержит правило проверки, обновления этого табличного значения должны соответствовать предопределенным критериям перед изменением данных. Если изменение не соответствует условиям, создается исключение, содержащее значение GetValidationText . CDaoTableDef
Для объекта это CString
доступно только для чтения для подключенной таблицы и чтения и записи для базовой таблицы.
Дополнительные сведения см. в разделе "Свойство ValidationRule" в справке DAO.
CDaoTableDef::GetValidationText
Вызовите эту функцию, чтобы получить строку для отображения, когда пользователь вводит данные, которые не соответствуют правилу проверки.
CString GetValidationText();
Возвращаемое значение
CString
Объект, указывающий текст, отображаемый, если пользователь вводит данные, которые не соответствуют правилу проверки.
Замечания
CDaoTableDef
Для объекта это CString
доступно только для чтения для подключенной таблицы и чтения и записи для базовой таблицы.
Дополнительные сведения см. в разделе "Свойство ValidationText" в справке DAO.
CDaoTableDef::IsOpen
Вызовите эту функцию-член, чтобы определить, открыт ли CDaoTableDef
объект в данный момент.
BOOL IsOpen() const;
Возвращаемое значение
Ненулевое CDaoTableDef
значение, если объект открыт; в противном случае — значение 0.
Замечания
CDaoTableDef::m_pDatabase
Содержит указатель на объект CDaoDatabase для этой таблицы.
Замечания
CDaoTableDef::m_pDAOTableDef
Содержит указатель на интерфейс OLE для объекта таблицы DAO, лежащего в CDaoTableDef
основе объекта.
Замечания
Используйте этот указатель, если вам нужно напрямую получить доступ к интерфейсу DAO.
CDaoTableDef::Open
Вызовите эту функцию-член, чтобы открыть табличное значение, ранее сохраненное в коллекции TableDef базы данных.
virtual void Open(LPCTSTR lpszName);
Параметры
lpszName
Указатель на строку, указывающую имя таблицы.
Замечания
CDaoTableDef::RefreshLink
Вызовите эту функцию-член, чтобы обновить сведения о подключении для подключенной таблицы.
void RefreshLink();
Замечания
Измените сведения о подключении для подключенной таблицы, вызвав SetConnect в соответствующем CDaoTableDef
объекте, а затем используя RefreshLink
функцию-член для обновления сведений. При вызове RefreshLink
свойства присоединенной таблицы не изменяются.
Чтобы принудить измененную информацию о подключении, все открытые объекты CDaoRecordset на основе этого табличного значения должны быть закрыты.
Дополнительные сведения см. в разделе "Метод RefreshLink" в справке DAO.
CDaoTableDef::SetAttributes
Задает значение, указывающее одну или несколько характеристик CDaoTableDef
объекта.
void SetAttributes(long lAttributes);
Параметры
lAttributes
Характеристики таблицы, CDaoTableDef
представленной объектом, и могут быть суммой этих констант:
Константа | Description |
---|---|
dbAttachExclusive |
Для баз данных, использующих ядро СУБД Microsoft Jet, указывает, что таблица является подключенной таблицей, открытой для монопольного использования. |
dbAttachSavePWD |
Для баз данных, использующих ядро СУБД Microsoft Jet, указывает, что идентификатор пользователя и пароль для подключенной таблицы сохраняются со сведениями о подключении. |
dbSystemObject |
Указывает, что таблица — это системная таблица, предоставляемая ядром СУБД Microsoft Jet. |
dbHiddenObject |
Указывает, что таблица является скрытой таблицей, предоставляемой ядром СУБД Microsoft Jet. |
Замечания
При настройке нескольких атрибутов их можно объединить, суммируя соответствующие константы с помощью побитового оператора OR. Параметр dbAttachExclusive
для неуваживаемой таблицы создает исключение. Объединение следующих значений также приводит к исключению:
dbAttachExclusive | dbAttachedODBC
dbAttachSavePWD | dbAttachedTable
Дополнительные сведения см. в разделе "Свойство атрибутов" в справке DAO.
CDaoTableDef::SetConnect
CDaoTableDef
Для объекта, представляющего присоединенную таблицу, строковый объект состоит из одной или двух частей (описатель типа базы данных и пути к базе данных).
void SetConnect(LPCTSTR lpszConnect);
Параметры
lpszConnect
Указатель на строковое выражение, указывающее дополнительные параметры для передачи в ODBC или устанавливаемых драйверов ISAM.
Замечания
Путь, как показано в таблице ниже, — полный путь для каталога, содержащего файлы базы данных, и должен предшествовать идентификатору DATABASE=. В некоторых случаях (как и в базах данных Microsoft Jet и Microsoft Excel), в аргумент пути к базе данных входит определенное имя файла.
Примечание.
Не включать пробелы вокруг операторов пути равного входа в форму DATABASE=drive:\\path. Это приведет к возникновению исключения и сбою подключения.
В следующей таблице показаны возможные типы баз данных и соответствующие описатели и пути к базе данных:
Тип базы данных | класса хранения | Путь |
---|---|---|
База данных с помощью ядра СУБД Jet | "[ database ]; |
" drive :\\ path\\ 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" |
Парадокс 4.x | "Paradox 4.x;" | " drive :\\ path" |
Парадокс 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 или Excel 95 | "Excel 5.0;" | " drive :\\ path\\ filename.XLS" |
Excel 97 | "Excel 8.0;" | " drive :\\ path\ filename.XLS" |
Импорт HTML | "Импорт HTML;" | " drive :\\ path\ filename" |
Экспорт HTML | "Экспорт HTML;" | " drive :\\ path" |
Текст | "Текст;" | "drive:\\path" |
ODBC | "ODBC; DATABASE= database ; UID= user; PWD= пароль; DSN= имя источника данных; LOGINTIMEOUT= секунды;" (Это может быть не полный строка подключения для всех серверов; это просто пример. Очень важно не иметь пробелов между параметрами.) |
нет |
Exchange | "Exchange; MAPILEVEL= folderpath; [TABLETYPE={ 0 | 1 };] [ПРОФИЛЬ=;] [PWD= пароль;] [DATABASE= database ;]" |
"drive:\\ path\\ filename. MDB" |
Примечание.
Btrieve больше не поддерживается с DAO 3.5.
В строка подключения необходимо использовать двойную обратную косую черту (\\). Если вы изменили свойства существующего подключения с помощью SetConnect
, необходимо затем вызвать RefreshLink. Если вы инициализируете свойства подключения с помощью SetConnect
, вам не нужно вызывать RefreshLink
, но следует сделать это, сначала добавьте табличное значение.
Если пароль является обязательным, но не указан, драйвер ODBC отображает диалоговое окно входа при первом доступе к таблице и повторно, если подключение закрыто и повторно откроется.
Вы можете задать строка подключения для CDaoTableDef
объекта, предоставив исходный аргумент Create
функции-члену. Можно проверить параметр, чтобы определить тип, путь, идентификатор пользователя, пароль или источник данных ODBC базы данных. Дополнительные сведения см. в документации по конкретному драйверу.
Дополнительные сведения см. в разделе "Подключение свойства" в справке DAO.
CDaoTableDef::SetName
Вызовите эту функцию-член, чтобы задать определяемое пользователем имя таблицы.
void SetName(LPCTSTR lpszName);
Параметры
lpszName
Указатель на строковое выражение, указывающее имя таблицы.
Замечания
Имя должно начинаться с буквы и может содержать не более 64 символов. Он может включать числа и символы подчеркивания, но не могут включать знаки препинания или пробелы.
Дополнительные сведения см. в разделе "Свойство name" в справке DAO.
CDaoTableDef::SetSourceTableName
Вызовите эту функцию-член, чтобы указать имя присоединенной таблицы или имя базовой таблицы, на которой CDaoTableDef
основан объект, так как он существует в исходном источнике данных.
void SetSourceTableName(LPCTSTR lpszSrcTableName);
Параметры
lpszSrcTableName
Указатель на строковое выражение, указывающее имя таблицы во внешней базе данных. Для базовой таблицы параметр является пустой строкой ("").
Замечания
Затем необходимо вызвать RefreshLink. Этот параметр свойства пуст для базовой таблицы и чтения и записи для подключенной таблицы или объекта, не добавленного в коллекцию.
Дополнительные сведения см. в разделе "Свойство SourceTableName" в справке DAO.
CDaoTableDef::SetValidationRule
Вызовите эту функцию-член, чтобы задать правило проверки для табличного значения.
void SetValidationRule(LPCTSTR lpszValidationRule);
Параметры
lpszValidationRule
Указатель на строковое выражение, которое проверяет операцию.
Замечания
Правила проверки используются в связи с операциями обновления. Если табличное значение содержит правило проверки, обновления этого табличного значения должны соответствовать предопределенным критериям перед изменением данных. Если изменение не соответствует условиям, отображается исключение, содержащее текст GetValidationText .
Проверка поддерживается только для баз данных, использующих ядро СУБД Microsoft Jet. Выражение не может ссылаться на определяемые пользователем функции, агрегатные функции домена, агрегатные функции SQL или запросы. Правило проверки для CDaoTableDef
объекта может ссылаться на несколько полей в этом объекте.
Например, для полей с именем hire_date и termination_date может быть правило проверки:
myTableDef.SetValidationRule(_T("termination_date > hire_date"));
Дополнительные сведения см. в разделе "Свойство ValidationRule" в справке DAO.
CDaoTableDef::SetValidationText
Вызовите эту функцию-член, чтобы задать текст исключения правила проверки для CDaoTableDef
объекта с базовой таблицей, поддерживаемой ядром СУБД Microsoft Jet.
void SetValidationText(LPCTSTR lpszValidationText);
Параметры
lpszValidationText
Указатель на строковое выражение, указывающее текст, отображаемый, если введенные данные недопустимы.
Замечания
Невозможно задать текст проверки присоединенной таблицы.
Дополнительные сведения см. в разделе "Свойство ValidationText" в справке DAO.
См. также
Класс CObject
Диаграмма иерархии
Класс CDaoDatabase
Класс CDaoRecordset