(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Программное создание базы данных с помощью ADOX - Часть 2 (исходники)

Источник: VBRussian
Руслан Иноземцев

Часть 1

Создание полей типа "счетчик"

Для этого нам понадобятся два объекта:

   Dim cat As New ADOX.Catalog ? Каталог иными словами наша база данных
   Dim col As New ADOX.Column  ? Колонка, то есть поле типа ?счетчикЋ, 
                               ? которое мы добавим к таблице

Создадим подключение к БД. Напомню, что работа с базой данных Access через провайдера Microsoft.Jet работает в 1.5 ? 2 раза быстрее, чем через ODBC.

   cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=.\NorthWind.mdb;"

Теперь зададим для нового поля свойства, коорые заставят его быть счетчиком.

   With col
      .Name = "ContactId"
      .Type = adInteger
      Set .ParentCatalog = cat
      .Properties("AutoIncrement") = True
      .Properties("Seed") = CLng(1)
      .Properties("Increment") = CLng(1)
   End With

Вот теперь это поле можно добавить в таблицу

   cat.Tables("MyTale").Columns.Append col

Закрываем соединение с базой данных

   Set cat = Nothing

Ниже приведена таблица с описанием других свойств (Properties) объекта Column:

Название

Тип

Значение по умолчанию

Доступ

Описание

AutoIncrement

adBoolean

False

adPropRead

adPropWrite

adPropRequired

Задает тип поля ?СчетчикЋ с автоматическим увеличением значения при добавлении записи

Default

adEmpty1

Empty

adPropRead

adPropWrite

adPropRequired

Значение поля по умолчанию

Description

adBStr

""

adPropRead

adPropWrite

adPropRequired

Описанеие поля

Fixed Length

adBoolean

False

adPropRead

adPropWrite

adPropRequired

Определяет ,будет поле фиксированой длины или переменой

Increment

adInteger

1

adPropRead

adPropWrite

adPropRequired

Значение, на которое будет увеличиваться поле типа ?счетчикЋ

Nullable

adBoolean

False

adPropRead

adPropWrite

adPropRequired

Определяет, может ли поле не содержать никакого значения, иными словами должно ли это поле быть обязательным для заполнения

Seed

adInteger

1

adPropRead

adPropWrite

adPropRequired

Значение, с которого начнется отсчет в первой записи для поля типа ?счетчикЋ

Jet OLEDB:Allow Zero Length

adBoolean

False

adPropRead

adPropWrite

adPropRequired

Определяет, могут ли текстовые поля содержать строки нулевой длины. Игнорируется для несимвольных полей

Jet OLEDB:AutoGenerate

adBoolean

False

adPropRead

adPropWrite

adPropRequired

Определяет, будет ли автоматически генерироваться новое значение GUID для полей типа adGUID

Jet OLEDB:Column Validation Rule

adBStr

""

adPropRead

adPropWrite

adPropRequired

Выражение, определяющее правильность записываемого в поле значения, должно быть написано в формате SQL WHERE но без ключевого слова WHERE

Jet OLEDB:Column Validation Text

adBStr

""

adPropRead

adPropWrite

adPropRequired

Текст, который будет показан, в случае несоответствия заносимого в поле значения, определенному для этого поля правилу (Rule).

Jet OLEDB:Compressed UNICODE Strings

adBoolean

False

adPropRead

adPropWrite

adPropRequired

Определяет, будет ли Microsoft Jet сжимать UNICODE строкипри записи на диск. Игнорируется, если база данных не в формате Microsoft Jet version 4.0

Jet OLEDB:Hyperlink

adBoolean

False

adPropRead

adPropWrite

adPropRequired

Определяет, что данные в поле являются гиперссылкой. Игнорируется для полей с типом отличным от adLongVarWChar.

Jet OLEDB:IISAM Not Last Column

adBoolean

False

adPropRead

adPropWrite

adPropRequired

Это свойство я не берусь переводить, поскольку с ISAM драйверами не работаю.

?

For Installable-ISAMs, this property informs the I-ISAM that there are more columns that are going to be added to the table after this one. If you are using ITableDefinition::AddColumn or ITableDefintion::CreateTable, it is required that you set this property for every column except the last column.

Jet OLEDB:One BLOB per Page

adBoolean

False

adPropRead

adPropWrite

adPropRequired

Определяет, должны ли данные хранится в раздельных страницах (True) или могут использовать общие страницы базы данных, для экономии места на диске. Работает только с полями типа adLongVarBinary.

2. Программное сжатие базы данных

Программное сжатие, которое раньше выполнялось командой CompactDatabase библиотеки DAO не представлено не в ADO не в ADOX. Эти операции вместе с программным управлением репликацией вынесены в отдельную библиотеку

Microsoft Jet and Replication Objects X.X library Где X.X соответствует версии ADO с которой вы работаете, но не ниже 2.5.

Так что поставьте ссылку в Project/References на эту библиотеку и переходим к процессу программирования.

Библиотека довольно скудна по количеству функций. Я попробую привести описание ее объектной модели.

Объекта всего два:

  JetEngine

  Replica

JetEngine содержит только два метода CompacDatabase, его мы рассмотрим ниже и RefreshCache, который как ясно из названия обновляет кэшированную область базы данных.

Объект Replica управляет репликацией, здесь я его рассматривать не буду, возможно, сделаю это в отдельной статье.

Итак, для сжатия базы данных нам необходим следующий код.

Dim jro As jro.JetEngine        ? Объявляем и создаем экземпляр объекта JetEngine
Set jro = New jro.JetEngine   ? 
jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyDatabase.mdb", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyCompactedDatabase.mdb;Jet OLEDB:Engine Type=4"

Set jro = Nothing

Вот такая незатейливая операция. Заботу об удалении старой базы данных и переименовании сжатой базы в текущую, вам придется взять на себя.

Напомню, что можно использовать встроенные в VB команды:

Kill ?FileName?
Name ?OldFileName?  As ?NewFileName? 



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 19.09.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft 365 Apps for business (corporate)
Microsoft Office для дома и учебы 2019 (лицензия ESD)
Microsoft Windows Professional 10, Электронный ключ
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Новости мира 3D-ускорителей
Новые программы для Windows
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100