Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа Программное создание базы данных с результатами расчетов Цель работы Приобре

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 24.11.2024

Лабораторная работа

Программное создание базы данных с результатами расчетов

Цель работы

  1.  Приобретение навыков создания базы данных, а в ней – таблиц с полями.
  2.  Задание свойств полей и занесение информации в эти поля.

Задание для самостоятельной работы

Изучить приведенные методические указания. Написать приложение,  которое  считает по заданной формуле массив данных и заносит эти данные в базу данных и в таблицу Grid. В программе - создать базу данных, создать таблицы, поля, и заполнить базу результатами расчетов.

Содержание отчета

  1.  Отобразить заданные таблицы.
  2.  Перечислить созданные поля таблиц.
  3.  Описать формат каждого созданного поля.
  4.  Подробное описание последовательности действий при создании и заполнении базы данных.

Методические указания

Создание Базы Данных

Visual Basic содержит два объекта доступа к данным BDEngine и Workspace. Для создания БД применяется метод CreateDatabase, который является частью объекта Workspace. Рабочая область (Workspace) создается при каждом доступе к Jet-машине. При необходимости можно открывать другие рабочие области. Если при работе с функциями не указывается ID-номер рабочей области, то подразумевается рабочая область по умолчанию.

При помощи оператора Dim (или Public для модуля) описываем переменную NewDB, как объект БД, создаем рабочую область и с помощью метода CreateDatabase создаем Базу Данных.

     'Объявляем необходимые переменные

Dim NewDB As Database

Dim NewWs As WorkSpace

Dim strDBPath As String

     'Устанавливаем путь к создаваемой БД с указанием ее имени (MyDB.mdb)

StrDBPath = “C:\ExamplDB\MyDB.mdb”

Совет. Для получения имени файла БД и пути к ней можно использовать диалоговое окно Open, эл. управления CommonDialog.

Совет. Перед тем, как создавать базу, можно проверить, а не создана ли она уже в той папке, где вы хотите её создать:

       'Проверка на существование БД

If Dir(App.Path & "\" & strDBPath, vbNormal) = "" Then

    тут вставьте  команды на создание рабочего пространства и создание Базы   Данных:

'Создаем рабочее пространство

Set NewWs = DBEngine.Workspaces(0)

    'Создаем Базу Данных

Set NewDB = NewWs.CreateDatabase (strDBPath, dbLangGeneral)

Константа dbLangGeneral является обязательным параметром метода CreateDatabase . Она описывает язык и кодовую страницу для американских компьютеров. Для русской версии употребляют dbLangCyrillic:

Set NewDB = NewWs.CreateDatabase (strDBPath, dbLangCyrillic, lngDBOpts)

End If

Пока что созданный файл – пуст и с ним ничего нельзя делать пока не будут созданы таблицы.

Создание Таблиц

Для создания новой таблицы необходимо определить новый объект TableDef (Table Definition – описание таблицы). Объект TableDef содержит всю необходимую информацию для определения таблицы БД. Он описывает в БД тип информации, хранимой в таблице и некоторые факультативные свойства этой таблицы.

Свойства объекта TableDef устанавливаются при создании таблицы и их значения различаются для собственных таблиц Microsoft Jet и присоединенных таблиц.

Следующие операторы показывают, как создать объект TableDef и определить имя таблицы:

    'Объявляем необходимые переменные

Dim NewTbl As TableDef

Dim strDBPath As String

    'Создаем таблицу

Set NewTbl = NewDB.CreateTableDef (Name)

Свойство таблицы Name является одним из свойств объекта TableDef, и обычно это свойство единственное, которое необходимо для создания таблицы БД Access.

При подключении к БД внешней таблицы можно использовать некоторые другие свойства (Attributes, Connect, SourceTableName и т.д – рассматривать мы их не будем). Эти свойства можно указывать как последовательные параметры метода CreateTableDef. Можно также определять и другие свойства, давая им некоторые значения. Эти операторы должны следовать за методом CreateTableDef.

После выполнения вышеприведенного кода вы создадите таблицу, но это не все - необходимо описать хотя бы одно поле, для того чтобы действительно таблица появилась в БД.

Таблица может иметь одно или множество полей.

Создание полей 

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

Поля таблицы описываются с помощью объекта Field, который содержит всю информацию о поле таблицы данных. Для каждого поля следует указать имя и тип. В зависимости типа поля описание других свойств может быть обязательным или нет. Существуют 17 свойств объекта Field. С их помощью можно определять размер и тип поля, и так же является это поле «родным» Microsoft Jet или это присоединенное поле внешней базы. Visual Basic распознает 14 различных типов полей данных.

Типы полей данных

Тип поля данных

Размер

Тип данных в VB

Комментарии

BOOLEAN

1

Boolean

Хранит только 0 или 1

BYTE

1

Integer

Хранит только от 0 до 255

COUNTER

8

Long

Автоматически наращиваемый тип Long

CURENCY

8

Curency

15 позиций слева от десятичной точки и 4 справа

DATETIME

8

Date/Time

Дата хранится слева от деc. Точки, а время - справа

DOUBLE

8

Double

GUID

16

(нет)

Используется для хранения глобально уникальных идентификаторов

INTEGER

2

Integer

LONG

8

Long

LONGBINARY

V

(нет)

Используется для OLE – объектов

MEMO

V

String

Длина около 1,2 Гб

SINGLE

4

Single

TEXT

V

String

Ограничено 255 – ю байтами

Многие из типов полей данных понятны и поэтому чуть подробнее опишем только некоторые из них.

Поля типа LONGBINARY предназначены для хранения изображений и OLE – объектов;

Поле BOOLEAN чаще всего применяется для хранения результатов выбора в связанных флажках, где 1 – True, а 0 – False. Но будьте осторожны при вводе информации в эти поля, т.к. любое отличное от 0 число будет преобразовываться в 1;

Поле типа BYTE воспринимает только числа от 0 до 255, любое другое значение вызовет ошибку 524;

Тип поля COUNTER (счетчик) является автоматически наращиваемым и очень часто применяется в качестве уникального первичного ключа. Оно предназначено только для чтения;

Поле типа GUID используется для хранения 128 – разрядного числа специального типа;

Поля создаются с помощью метода CreateField. Имеются два способа создания полей.

Первый способ

С помощью метода CreateField определяем имя поля, тип и размер.

      'Объявляем переменные

Dim F1 As Field, F2 As Field, F3 As Field

      'Устанавливаем имя, тип и размер поля

Set F1 = NewTbl.CreateField (“FirstName”, dbText, 20)

Set F2 = NewTbl.CreateField (“LastName”, dbText, 20)

Set F3 = NewTbl.CreateField (“Age”, dbInteger)

После того как поля, включаемые в таблицу, описаны, при помощи метода Append объекта TableDef, эти поля добавляются к таблице.

NewTbl.Fields.Append F1

NewTbl.Fields.Append F2

NewTbl.Fields.Append F3

Второй способ

Можно вызвать метод CreateField без всяких параметров, а имя, тип и размер установить потом при помощи оператора присваивания.

      'Объявляем переменную

Dim F1 As Field

      'Создаем поле

Set F1 = NewTbl.CreateField ()

      'Свойства поля устанавливаем явно

F1.Name = “FirstName”

F1.Type = dbText

F1.Size = 20

После того как поле, включаемое в таблицу, описано, при помощи метода Append объекта TableDef, оно добавляется к таблице:

NewTbl.Fields.Append F1

Установка факультативных свойств полей

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

Первым из этих свойств является Attributes. При создании полей используются два его основных значения. Первое – автоинкремент – задает приращение значения поля БД всякий раз, когда добавляется новая запись. С помощью данного свойства можно организовать счетчик записей, чтобы обеспечить уникальное значение этого поля. Тогда поле с автоинкрементом можно использовать, как поле первичного ключа (Primary Key).

Примечание. Автоинкремент можно установить только для полей с типом данных Long.

     'Объявляем переменную

Dim F1 As Field

     'Создаем поле

Set F1 = NewTbl.CreateField (“ID”, dbLong)

     'Устанавливаем свойства автоинкремента

F1.Attributies = dbAuotoIncrField

     'Добавляем к таблице

NewTbl.Fields.Append F1

Другое факультативное значение – updatable позволяет разрешать или запрещать изменение поля. Обычно эта установка не используется при начальном создании поля.

Другие константы, которые можно использовать вместе со свойством Attributes, приведены ниже. Этому свойству можно задавать сложные значения, для чего следует объединить значения отдельных констант и присвоить свойству их сумму.

Константа

Функция

dbFixedField

Длина поля – фиксирована

dbVariebleField

Длина поля может изменяться (только для текстовых)

dbAuotoIncrField

Ядро БД автоматически увеличивает значение поля

dbUpdatableField

Значение поля может изменяться

Кроме свойств Attributes для отдельных полей можно определять некоторые другие свойства. Для изменения значений этих свойств, также как и для свойства Attributes, используются операторы присваивания; эти значения нельзя установить при вызове метода CreateField.

Свойство

Комментарии

AllowZeroLenght

Определяет, может ли поле Text или Memo иметь нулевую длину. Значение True – разрешает ввод пустых строк.

DefaulValue

Позволяет задавать значение поля по умолчанию

Required

Определяет, обязательно ли поле должно иметь значение

ValidationRule

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

ValidationText

Определяет сообщение об ошибке, выводимое в том случае, когда нарушается правило проверки достоверности поля(ValidationRule)

     'Объявляем переменные

Dim F3 As Field

     'Устанавливаем имя, тип и размер поля

Set F3 = NewTbl.CreateField (“Age”, dbInteger)

     'Устанавливаем факультативные свойства

F3.ValidationRule = “Age” > 0

F3.ValidationText = “Возраст должен быть больше 0”

     'Добавляем к таблице

NewTbl.Fields.Append F3

Удаление полей

Для удаления поля используется метод Delete.

     'Удаляем из таблицы NewTbl поле Age

NewTbl.Fields.Delete “Age”

или

     'Удаляем из БД NewDB, таблицы с имене Name поле Age

NewDB.TableDefs(Name).Fields.Delete “Age”

Итак, вы создали БД, затем таблицу (или таблицы), описали и присоединили поля к таблице и кажется БД готова. Но нет! БД еще немного сыровата. Есть еще один ключевой момент – индексы. Индексами или индексными полями, как их иногда называют, являются знакомые вам ключевые поля. Необходимо отметить, что почти во всех БД индексы используются только для ускорения обработки больших файлов и выполняют небольшую роль в поддержке отношений между таблицами. В используемых Visual Basic БД (mdb-файлы), ключевые поля используют и для установки ограничения целостности, и для ускорения поиска и для выборки информации.

Создание индексов

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

Создание первичного ключа (PrimaryKey)

Главной задачей первичного ключа является поддержка внутренней целостности таблицы и поэтому в ней не может быть две одинаковой записи. Обычно первичный ключ используют в полях, где содержатся номера телефонов, счета фактур и т.д. Для создания индекса нужно выполнить следующие действия

(считаем, что БД и Таблица уже созданы, поля описаны и добавлены к таблице):

При помощи метода CreateIndex объекта TableDef, создаем объект Index;

Устанавливаем свойства индекса;

Добавляем индекс к таблице;

Здесь приводится код создания индекса:

Dim Idx1 As Index

    'Создаем объект индекс

Set Idx1 = NewTbl.CreateIndex("PrimaryKey")

    'Устанавливаем его свойства

Idx1.Name = "PrimaryKey"

Idx1.Primary = True

    'Свойство Fields должно быть таким же, как имя поля, которое становится индексным

Idx1.Fields = "ID"

    'Прибавляем индекс к таблице

NewTbl.Indexes.Append Idx1

После выполнения всех этих процедур можно добавить таблицу к БД.

NewDB.TableDefs.Append NewTbl

После этого созданную БД лучше закрыть

       NewDB.Close

Теперь нужно занести данные в базу.

    'Открываем БД

   Set NewDB = OpenDatabase(strDBPath, False, False)

    'Открываем recordset

   Set rs = NewDB.OpenRecordset("ttt", dbOpenDynaset)

Теперь в цикле выполняем такие команды:

     'Подготавливаем recordset к введению новой

записи         

       rs.AddNew

rs("Field_X") = X         'записываем X в БД

rs("Field_Y") = Y         'записываем Y в БД

     'С помощью Update обновляем данные в БД

       rs.Update

Порядок выполнения работы

  1.  Создайте форму, на которой разместите 2 кнопки: “Запуск” и “Выход из программы”, и таблицу MSFlexGrid

(рис.1)

               рис.1

  1.  При нажатии на кнопку “Запуск” должен производиться расчет нескольких значений формулы, занесение этих значений в таблицу MSFlexGrid, а также – в таблицу созданной Вами базы данных. Свой вариант возьмите в заданиях к лабораторной работе №8 по VB (cм. в приложении).
  2.  В процедуру Command1_Click() вставьте команды создания базы данных, в ней – таблицы с полями. В этих полях выводите результаты расчета.
  3.   

Приложение. Задания для расчетов

ВАРИАНТЫ  ЗАДАНИЙ

  1.  В сферическом треугольнике даны два угла и сторона между ними: = 14027,3; В = 100013,5; С = 56044,7. Составить программу для нахождения А, b и С, используя расчетные формулы:

  1.  Определить (20 + n) значений сопротивления L воздуховода при одновременном изменении скорости воздуха V в трубопроводе от 2 до 18 м/c и диаметра трубопровода от 0,2 до 0,6 м по формуле:

  1.  Определить (15 + n) значений угла отклонения струи пара в косом срезе сопла при одновременном изменении давления перед соплами P0 от 1,2*105 до 4,8*105 Па и изменении давления за соплами P1 от 0,5*105 до 1,0*105 Па. Ось сопла наклонена под углом = 160, показатель адиабаты расширения = 1,3.

  1.  Определить (25 - n) значений температуры в конце сжатия Тс при одновременном изменении температуры в начале сжатия Та от 353 до 373 0К и степени сжатия от 10 до 12 (показатель политропы сжатия m = 1,6):     .

  1.  Выполнить расчет и вывести на печать значения действительной X() и мнимой Y() частей амплитудно-фазовой частотной характеристики разомкнутой системы автоматического регулирования частоты вращения вала дизеля в диапазоне частот от 0 до (5 + 0б2n) с-1 с шагом 0б05 по выражениям:

;     .

  1.  Определить и вывести на печать значения термического к.п.д. рабочего цикла двигателя внутреннего сгорания со смешанным подводом тепла (цикл Тринклера):

t,

где: - степень сжатия изменяется от (13 - 0,1n) до 11,0 с шагом 0,2; = 1,3 - степень повышения давления; = 1,4 - степень предварительного расширения; = 1,3 - показатель адиабаты сжатия и расширения.

  1.  Составить программу расчета и вывода на экран давления насыщения Рн и скрытой теплоты парообразования r для фреона-22 при изменении температуры от - 40 0С до +(70 - n) 0С с интервалов в 5 0С, используя эмпирическую зависимость:

;

.

  1.  Рассчитать и вывести на экран (25 + n) значений коэффициентов гармонической линеаризации hS и hc нелинейного звена типа «зона люфт» в зависимости от отношения амплитуды колебаний а к величине люфта b (а/b изменяется от 1 до 100) по формулам:

hS(a/b);

hc(a/b).

  1.  Рассчитать и вывести на экран (35 + n) значений функции b истечения газов из цилиндра двигателя внутреннего сгорания  в период принужденного выпуска в диапазоне изменения перепада давлений  от 0,5 до 1,0 с шагом 0,05:

b

где: Рm - давление в выпускном коллекторе; Рн - давление в цилиндре в начале продувки; = 1,3 - показатель адиабаты расширения.

  1.  Рассчитать и вывести на экран (30 + n) значений коэффициента синхронизирующего момента МS синхронного генератора в зависимости от угла   выбега ротора относительно поля статора по формуле:

,

где: Eq = 2,2 - ЭДС по поперечной оси, соответствующая установившемуся режиму, относительно которого происходят колебания; u = 1 - напряжение; xd = 1,5,  xq = 0,705 - реактивные сопротивления по продольной и поперечной осям. Угол  изменяется от 0 до 300.

  1.  Определить и вывести на печать коэффициенты a и b зависимости по формулам:

;            ;

где xi и yi - произвольная выборка значений аргумента и функции соответственно, размерностью k = (n +20).

  1.  Определить (30 + n) значений температуры воздуха Тн после первой ступени центробежного нагнетателя в диапазоне изменения перепада давления  от 1,5 до 2,0:

где Т0 = 295 0К - температура воздуха на входе в нагнетатель; Рн и Р0 - давление воздуха на выходе и на входе в нагнетатель соответственно; m = 1,7 - показатель политропы.

  1.  Определить (25 + n) значений  критерия Нуссельта Nu при движении воздуха в шахматных пучках труб котла в диапазоне изменения числа Рейнольдса Re от 100 до 2000:

            

  1.  Рассчитать и вывести на экран (28 + 2n) значений кривых D - разбиения () и æ() параллельно работающих дизель-генераторов в диапазоне частот от 0 до 100 с-1:

;

æ;

где и æ - соответственно тепловое запаздывание и коэффициент усиления прииводного двигателя.

  1.  Определить координаты центра тяжести системы из k = (19 + n) материальных точек  заданных произвольно, с массами mi(i=1,2,3,...,k) также заданными произвольно по формулам:

              

  1.  Рассчитать и вывести на экран (40 + n) значений коэффициента трения для прямых труб в диапазоне изменения числа Рейнольдса Re от 103 до 104:

               

  1.  Рассчитать и вывести на экран в диапазоне частот от 0 до 60 с-1 (45 + n) значений амплитудно-частотной характеристики А() асинхронного генератора, работающего параллельно с сетью большой мощности, по формуле:

А()

где r = 25,6; Tr = 0,021 c - соответственно коэффициент усиления и постоянная времени асинхронного генератора.

  1.  Определить и вывести на печать коэффициенты a и b зависимости  по формулам:

           ;

где xi и yi - произвольная выборка значений аргумента и функции соответственно, размерностью k = (n +25).

  1.  Рассчитать и вывести на экран (25 + n) значений логарифмической амплитудно-частотной характеристики L() ротора параллельно работающего синхронного дизель-генератора в диапазоне частот от 0 до 50 с-1:

;

где: kr = 0,55; r = 19,6; r = 0,3 - соответственно коэффициент усиления, резонансная частота и декремент затухания ротора генератора.

  1.  Определить и вывести на печать (50 - n) значений КПД к винтового компрессора в диапазоне изменения степени повышения давления от 2 до 20 по формуле:

к       

  1.  Определить и вывести на печать статистические показатели произвольно заданного массива чисел х размерностью k = (30 + n):

математическое ожидание:  ;

среднеквадратическое отклонение: ;

коэффициент асимметрии:                  А;

коэффициент эксцесса:                       Е.

  1.  В сферическом треугольнике даны три стороны: a = 123047,2; b = 7102,7; c = 161018,4. Написать программу для определения А, B и С, используя расчетные формулы:

 

  1.  Определить и вывести на экран (20 + n) значений коэффициента теплоотдачи  при кипении воды в большом объеме, в зависимости от изменения давления РS от 60 до 100 бар:

;

где q = 20*104 Вт/м2.

  1.  Рассчитать и вывести на экран (25 + n) значений тепла, проходящего через 1 м2 "чистой" стенки котла, при изменении температуры t1 от 290 0С до 230 0С:

;

где t2 = 200 0С;  1 = 20 мм; 2 =2 мм; 1 = 50 ккал/(м*ч* 0С); 2 = 1,0 ккал/(м*ч* 0С).

  1.  Определить координаты центра тяжести системы из k = (25 + n) материальных точек заданных произвольно, с массами mi(i=1,2,3,...,k) также заданными произвольно по формулам:

      

  1.  Определить ориентированную площадь S многоугольника с вершинами в точках P1,...,P(15 - n), координаты которых на плоскости заданы произвольно:

27. Определить с точностью до = 10- 6 длину эллипса по формуле:

где: =; а и b задать произвольно.

  1.  Определить и вывести на экран (12 + n) значений средней логарифмической разности температур холодильного агента и забортной воды:

если температура забортной воды, выходящей из конденсатора  tзв2  всегда выше на 5 0С температуры забортной воды на входе в конденсатор tзв1, которая изменяется в диапазоне (14...26) 0С. Температуру конденсации tк принять постоянной для стандартных условий 30 0С.

  1.  Определить и вывести на экран (12 + n) значений коэффициента объемных потерь фреонового компрессора при одновременном изменении величины относительного мертвого пространства с от 2 до 6% и степени сжатия компрессора Рк/Р0 от 5 до 8. Показатель политропы расширения для фреоновых машин n принять равным 1:

с

  1.  Составить программу для определения суммы квадратов максимального и минимального элементов двухмерной матрицы размерностью 6х9. Численные значения элементов матрицы задать произвольно.

 




1. МОИ ПЕРВЫЕ ШАГИ Глава 2
2. к благам цивилизации
3. Расчет стоимости пластиковых оконных конструкций и дверей
4. Так что же такое информатика
5. Варіант 17 Питання та варіанти відповідей
6. Контрольная работа по дисциплине Политологии студента 2 курса экономического факультета Специальность
7. Алетейя 1996 Набор- Адаменко Виталий dmenko77@mil
8. Полезные игры Дошкольное детство ~ это период игры.1
9. Реферат- Тенденции структурных преобразований экономики России
10. Сопоставление двух видов маркетинговых целей
11. РЕФЕРАТ на здобуття наукового ступеня кандидата наук з державного управління
12. СИНТЕЗКАУЧУК32 2
13. Фонд заработной платы включает начисленную а не выплаченную заработную плату т
14. Контрольная работа- Методы обработки металла.html
15. Тип газеты 3 - 2. Форма собственности 1 - 3
16. Прикладные вопросы экологической генетики
17. задание по выпуску и реализации продукции определенного ассортимента и качества в натуральных и стоимостных
18. Развитие исторической науки в России
19. Страхование ответственности
20. Технология и эксплуатация САПР