Программное создание Баз Данных Очень
часто приходится писать программы
работающие с БД
, решение этой задачи напрашивается
само по себе – создаешь Базу Данных в Access,
а затем пишешь программу-оболочку. Но
что делать, если заказчику небходимо,
к примеру иметь отдельные БД для
каждого календарного года, или же
ежемесячные (ежекварталные), но что б
обрабатывались они по единому
принципу? Ведь не будете же вы каждый
месяц или год бегать к нему и
создавать в Access
все новые и новые БД, тем более если вы
работаете на заказ в 'оффшоре', а
создавать их заранее, как то несолидно
и граничит с абсурдом. А выход из этой
ситуации есть – это VB. Используя
команды VB
можно написать программу, которая
создает БД или разработать программу,
которая сможет генерировать новые БД
по ходу ее выполнения. В этой и
последующих статьях я попытаюсь
рассказать о способах и методах
программного создания Баз Данных и их
управления. Создание Базы ДанныхVisual
Basic
содержит два объекта доступа к данным BDEngine и Workspace.
Для создания БД применяется метод CreateDatabase,
который является частью объекта Workspace.
Рабочая область (Workspace)
создается при каждом доступе к Jet-машине.
При необходимости можно открывать
другие рабочие области. Если при
работе с функциями не указывается ID-номер
рабочей области, то подразумевается
рабочая область по умолчанию. При
помощи оператора Dim
(или Public
для модуля) описываем переменную NewDB, как объект БД, создаем рабочую область и
с помощью метода CreateDatabase создаем
Базу Данных. Примечание.
Установите в Refereces…
вашего проекта ссылку на
соответствующую библиотеку Microsoft
DAO 3.51 (или 3.6) Object Library. [ 3.51 –
при наличии Access
97, 3.6 при наличии Access 2000 ] 'Объявлеям
необходимые переменные Dim NewDB As
Database Dim NewWs As WorkSpace Dim strDBPath As String 'Устанавливаем
путь к создаваемой БД с указанием ее
имени (MyDB.mdb) StrDBPath =
“C:\ExamplDB\MyDB.mdb” ‘Создаем
рабочее пространство Set
NewWs = DBEngine.Workspaces(0) 'Создаем
Базу Данных Set
NewDB = NewWs.CreateDatabase (strDBPath, dbLangGeneral) Совет.
Для получения имени файла БД и пути к
ней можно использовать диалоговое
окно Open, эл.
управления CommonDialog. Константа
dbLangGeneral является
обязательным параметром метода CreateDatabase
. Она описувает язык и кодовую
страницу для американских
компьютеров. Для русской версии
употребляют dbLangCyrillic. У
метода CreateDatabase имеется
еще один параметр, этот аргумент
позволяет создавать БД для Jet-машины версий 1.0; 1,1;
2,5; 3.0; 3,5
и 3.6 и шифровать БД. Для вызова этих
опций нужно просуммировать константы
типа long
integer и
включить результат, как последний
аргумент функции. Dim NewDB As Database Dim NewWs As WorkSpace Dim lngDBOpts As Long Dim
strDBPath As String StrDBPath = “C:\ExamplDB\MyDB.mdb” 'Устанавливаем
опции LngDBOpts = dbVersion30 + dbEncrypt ‘Создаем
рабочее пространство Set NewWs = DBEngine.Workspaces(0) 'Создаем Базу
Данных Set
NewDB = NewWs.CreateDatabase (strDBPath, dbLangCyrillic, lngDBOpts) ‘**************************************** ‘После
создания БД, закрываем ее и рабочее
пространство NewDB.Close NewWs.Close 'Уничтожаем
объекты Set NewDB = Nothing Set
NewWs = Nothing После
выполнения этого кода у вас создается
БД, можете посмотреть. Но не
удивляйтесь если она пуста, т.к нам еще
только предстоит заполнить ее
таблицами. Внимание.
При использовании метода CreateDatabase ,
если создаваемый файл (*.mdb) уже
существует, возникает
перехватываемая ошибка
- 3204 – 'Database
alredy exists'.
Необходимо включить код для ее
перехвата.
|