|
Программирование >> Разработка пользовательского интерфейса
Set oAutoWs = DBEngine.Workspaces(0) Set oAutoDB = oAutoWs.CreateDatabase( AUTOSTORE.MDB , dbLangGeneral) Чтобы создаваемые файлы при записи на диск оказались в нужном месте, можно использовать операторы ChDrive и ChDir. 3. Используйте метод CreateTableDef объекта Database для создания таблиц в БД: Set oTDVar = oDBVar.CreateTableDef([cWame [, Attributes [, Source [,]]]]) где oTDVar - имя переменной для ссылки на объект TableDef. oDBVar - имя переменной для ссылки на объект Database. cName - имя создаваемой таблицы. Оно должно начинаться с буквы и иметь не более 40 символов. В имени таблицы не должно использоваться знаков пунктуации и пробелов. Attributes - устанавливает дополнительные характеристики для создаваемой таблицы, в основном используемые для внешних источников данных. Source - указывает имя таблицы внешней БД, которая будет являться источником данных. Connect - определяет характеристики соединения в случае использования внешнего источника данных. Создадим две таблицы в БД Auto Store, используя следующие строки: Set oCustomerTd = oAutoDB.CreateTableDef( Customer ) Таким образом, для создания фрагмента БД Autostore, состоящего из двух связанных таблиц Customer и Account, мы должны определить следующие переменные: Public Sub Main() Определяем переменные Dim oAutoDB As Database, oAutoWs As Workspace Dim oCustomerTd As TableDef, oAccountTd As TableDef Dim oCustomerFlds(8) As Field, oAccountFlds(7) As Field Dim oCustomerldx As Index, oAccountIdx(2) As Index Dim oAutoRel As Relation Dim oIndexFld(3), oRelFld As Field Для непосредственного создания БД используйте метод CreateDatabase объекта Workspace: Set oDBVar = [oWSVar.]CreateDatabase(cDataBaseWame, Locale [, Options]) oDBVar - имя переменной для ссылки на БД; oWSVar - имя переменной для ссылки на объект Workspace; cDataBaseName - имя создаваемой БД, которому может предшествовать указание пути доступа к файлам; Locale - последовательность расположения символов в таблицах БД при сортировке или индексировании данных. Для России наиболее подходящим может быть использование последовательности, соответствующей стандартной таблице расположения символов, которая устанавливается заданием константы dbLangGeneral, или последовательности, соответствующей русскому алфавиту. Для этого надо использовать константу dbLangCyrillic. Options - задает дополнительные параметры для БД. Например, можно использовать константу dbEncrypt для шифрования данных в создаваемой бД. Для создания БД Autostore используем следующий код: Set oAccountTd = oAutoDB.CreateTableDef( Account ) 4. Для создания полей в таблице используйте метод CreateField объекта TableDef: Set oFVar = oTDVar.CreateField([cWame [, Type [, S/ze]]]) oFVar - имя переменной для ссылки на объект Field. oTDVar - имя переменной для ссылки на объект TableDef. cName - имя создаваемого поля. Правила задания имени поля такие же, как для имен таблиц. Type - тип создаваемого поля. В Visual Basic вы можете использовать следующие константы для указания типа поля: o dbDate - дата и время; o dbText - символьное; o dbMemo - поле примечаний; o dbBoolean - логическое (значения Yes/No); o dbInteger - целое число (2 байта); o dbLong - целое число двойной точности (4 байта); o dbCurrency - денежное выражение; o dbSingle - числовое; o dbDouble - числовое с плавающей точкой двойной точности; o dbByte - целое положительное число; o dbLongBinary - символьная строка для ссылки на OLE-объект. Size - ширина создаваемого поля. Этот параметр необходимо указывать только для символьных полей (1 - 255). Проиллюстрируем использование этого метода на примере создания нескольких полей для таблицы Customer: Set oCustomerFlds(0) = oCustomerTd.CreateField( KEY CUSTOMER , dbLong) Установим для этого поля автоматическое приращение значения с помощью свойства Attributes объекта Field oCustomerFlds(0).Attributes = dbAutoIncrField Set oCustomerFlds(1) = oCustomerTd.CreateField( NAME CUSTOMER , dbText, 100) 5. Для создания индексов используйте метод CreateIndex объекта TableDef: Set olVar = oTDVar.CreateIndex([cWame]) olVar - имя переменной для ссылки на объект Index. oTDVar - имя переменной для ссылки на объект TableDef. cName - имя индекса. Правила его задания такие же, как для имени таблицы. Необходимые характеристики для создаваемого индекса можно задать с помощью соответствующих свойств объекта Index (см. табл. 6.4). Для таблицы Customer создание первичного индекса может быть выполнено следующим образом: Set oCustomerIdx = oCustomerTd.CreateIndex( CUSTOMER ID ) oCustomerIdx.Primary = True oCustomerIdx.Unique = True Теперь следует с помощью метода CreateField создать поле, для того чтобы указать, какое поле будет использовано в качестве ключевого, как это показано в следующем примере: Set oIndexFld(0) = oCustomerIdx.CreateField( KEY CUSTOMER ) 6. Установите отношение между таблицами. Для этого используйте метод CreateRelation объекта Database: Set oRelVar = oDBVar.CreateRelation([cName [, cParentTable [,cChildTable [, Attributes]]]]) oRelVar - имя переменной для ссылки на объект Relation. oDBVar - имя переменной для ссылки на объект Database. cName - имя создаваемого объекта. Правила его составления такие же, как для таблицы. cParentTable - имя родительской таблицы в создаваемом отношении. cChildTable - имя дочерней таблицы в создаваемом отношении. Attributes - задает тип создаваемого отношения за счет использования следующих констант: o dbRelationUnique - отношение один к одному . o dbRelationDontEnforce - в отношении не поддерживается целостная ссылочность. o dbRelationInherited - отношение существует не в текущей БД между двумя присоединенными таблицами. o dbRelationLeft - в родительской таблице могут оставаться записи, не имеющие соответствующих записей в дочерней таблице. o dbRelationRight - в дочерней таблице могут оставаться записи, не имеющие соответствующих записей в родительской таблице. o dbRelationUpdateCascade - в отношении будет поддерживаться каскадное обновление. o dbRelationDeleteCascade - в отношении будет поддерживаться каскадное удаление. После создания отношения необходимо создать поле для отношения в родительской таблице и указать соответствующее ему поле в дочерней таблице, как это показано в следующем примере: Создание связи между таблицами Один ко многим Set oAutoRel = oAutoDB.CreateRelation( CustToAcc , Customer , Account ) Set oRelFld = oAutoRel.CreateField( KEY CUSTOMER ) oRelFld.ForeignName = KEY CUSTOMER 7. Добавьте созданные поля и индексы в соответствующие таблицы, а таблицы и отношение -в БД с помощью метода Append. Обратите внимание, что после добавления объектов в соответствующие коллекции большинство их свойств не может быть изменено. Для изменения свойств в этом случае вам придется сначала удалить соответствующий объект с помощью метода Delete, а затем создать его заново с требуемыми значениями свойств и после этого добавить в коллекцию. Collection.Append oVar Collection - имя коллекции, в которую добавляется объект; oVar - имя переменной для ссылки на добавляемый объект. Для нашего примера фрагмент кода, обеспечивающий добавление объектов в коллекции, будет выглядеть следующим образом: Добавляем поля в таблицы oCustomerTd.Fields.Append oCustomerFlds(0) oCustomerTd.Fields.Append oCustomerFlds(1) Добавляем поля в индексы oCustomerIdx.Fields.Append oIndexFld(0) oAccountIdx(0).Fields.Append oIndexFld(1) oAccountIdx(1).Fields.Append oIndexFld(2)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |