Класс CDaoTableDef

Представляет хранимое определение базовой или подключенной таблицы.

Синтаксис

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::Get Подключение Возвращает значение, которое предоставляет сведения о источнике таблицы.
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::Set Подключение Задает значение, которое предоставляет сведения о источнике таблицы.
CDaoTableDef::SetName Задает имя таблицы.
CDaoTableDef::SetSourceTableName Задает значение, указывающее имя присоединенной таблицы в исходной базе данных.
CDaoTableDef::SetValidationRule Задает значение, которое проверяет данные в поле при изменении или добавлении в таблицу.
CDaoTableDef::SetValidationText Задает значение, указывающее текст сообщения, отображаемого приложением, если значение объекта Field не удовлетворяет указанному правилу проверки.

Открытые члены данных

Имя Описание
CDaoTableDef::m_pDAOTableDef Указатель на интерфейс DAO, базовый объект tabledef.
CDaoTableDef::m_pDatabase Исходная база данных для этой таблицы.

Замечания

Каждый объект базы данных DAO поддерживает коллекцию с именем TableDefs, которая содержит все сохраненные объекты таблицы DAO.

Вы управляете определением таблицы с помощью CDaoTableDef объекта. Например, доступны следующие возможности:

  • Проверьте структуру полей и индекса любой локальной, подключенной или внешней таблицы в базе данных.

  • SetConnectSetSourceTableName Вызовите функции-члены для вложенных таблиц и используйте RefreshLink функцию-член для обновления подключений к подключенным таблицам.

  • Вызовите функцию-член, CanUpdate чтобы определить, можно ли изменять определения полей в таблице.

  • Получение или установка условий проверки с помощью GetValidationRule функций и SetValidationRuleGetValidationTextSetValidationText элементов.

  • Используйте функцию-член для Open создания объекта типа CDaoRecordset моментального снимка таблицы, dynaset или моментального снимка.

    Примечание.

    Классы базы данных DAO отличаются от классов баз данных MFC на основе Подключение тивности открытой базы данных (ODBC). Все имена классов базы данных DAO имеют префикс CDao. Вы по-прежнему можете получить доступ к источникам данных ODBC с помощью классов DAO; Классы DAO обычно предлагают превосходные возможности, так как они относятся к ядру СУБД Microsoft Jet.

Использование объектов tabledef для работы с существующей таблицей или создания новой таблицы

  1. Во всех случаях сначала создайте CDaoTableDef объект, указав указатель на объект CDaoDatabase , к которому принадлежит таблица.

  2. Затем выполните следующие действия в зависимости от того, что вы хотите:

    • Чтобы использовать существующую сохраненную таблицу, вызовите функцию open-члена объекта tabledef, указав имя сохраненной таблицы.

    • Чтобы создать новую таблицу, вызовите функцию создания элемента объекта tabledef, указав имя таблицы. Вызовите CreateField и CreateIndex , чтобы добавить поля и индексы в таблицу.

    • Вызовите добавление , чтобы сохранить таблицу, добавив ее в коллекцию TableDefs базы данных. Create помещает табличное значение в открытое состояние, поэтому после вызова не вызывайте CreateOpen.

      Совет

      Самый простой способ создать сохраненные таблицы — создать их и сохранить их в базе данных с помощью Microsoft Access. Затем их можно открыть и использовать в коде MFC.

Чтобы использовать объект tabledef, который вы открыли или создали, создайте и откройте CDaoRecordset объект, указав имя табличного поля со dbOpenTable значением в параметре nOpenType .

Чтобы использовать объект tabledef для создания CDaoRecordset объекта, обычно создается или открывается табличное значение, как описано выше, а затем создается объект набора записей, передав указатель на объект tabledef при вызове CDaoRecordset::Open. Передаваемая таблица должна находиться в открытом состоянии. Дополнительные сведения см. в классе CDaoRecordset.

Завершив использование табличного объекта, вызовите ее функцию-член Close , а затем уничтожить объект tabledef.

Иерархия наследования

CObject

CDaoTableDef

Requirements

Header: 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.

lpsz Подключение
Указатель на строку, содержащую строка подключения по умолчанию. По умолчанию это значение инициализируется как 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::Get Подключение

Вызовите эту функцию-член, чтобы получить строка подключения для источника данных.

CString GetConnect();

Возвращаемое значение

CString Объект, содержащий путь и тип базы данных для таблицы.

Замечания

CDaoTableDef Для объекта, представляющего присоединенную таблицу, CString объект состоит из одной или двух частей (описатель типа базы данных и пути к базе данных).

Путь, как показано в таблице ниже, — полный путь для каталога, содержащего файлы базы данных, и должен предшествовать идентификатору DATABASE=. В некоторых случаях (как и в базах данных Microsoft Jet и Microsoft Excel), в аргумент пути к базе данных входит определенное имя файла.

Таблица в CDaoTableDef::Set Подключение показывает возможные типы баз данных и соответствующие описатели и пути к базе данных:

Для базовых таблиц базы данных 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
Указатель на строку, указывающую имя таблицы.

Замечания

Вызовите эту функцию-член, чтобы обновить сведения о подключении для подключенной таблицы.

void RefreshLink();

Замечания

Вы изменяете сведения о подключении для подключенной таблицы путем вызова Set Подключение соответствующего 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::Set Подключение

CDaoTableDef Для объекта, представляющего присоединенную таблицу, строковый объект состоит из одной или двух частей (описатель типа базы данных и пути к базе данных).

void SetConnect(LPCTSTR lpszConnect);

Параметры

lpsz Подключение
Указатель на строковое выражение, указывающее дополнительные параметры для передачи в 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"
Text "Текст;" "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