МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Курс лекций по V B 5.0

    MoveLast - перейти на последнюю запись

    MoveFirst - перейти на первую запись

    BOF - начало файла.

    EOF - конец файла.

    RecordCount - количество записей с первой до текущей.

    Пример. Удаление всех записей в таблице.

    Data1.RecordSet.MoveFirst

    Do While Data1.RecordSet.EOF

    Data1.RecordSet.Delete

    Data1.RecordSet.MoveNext

    Loop

    Свойство RecordSource - источник записей, позволяет помимо таблиц БД

    использовать операторы SQL, чтобы выделить подмножество записей,

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

    элемента dynaset или snapshop.

    Ввод следующий фраз:

    Select - отбор информации из полей.

    From - указывает имя таблицы.

    Where - определяет условия выборки.

    Group By - для распределения выбранных записей в определенные группы.

    Having - определяет условие, которому должна удовлетворять следующая

    группа записей.

    Order By - порядок сортировки выбранных записей.

    Например.

    Data1.RecordSource = “Select Name, Address From AdressBook ...

    Data1.RecordSource = “Select Name, Address From AdressBook

    Data1.RecordSource = “Select Name, Address From AdressBook Where Name

    = ‘Иванов’‘’

    “ . . . . Like ‘’Иван” (Ивасев, Иваницкий, Иванченко...)

    Select Employers.Dept, M\Name From Supervisors, Employers Where

    Employers.Dept = Supervisiors.Dept

    Можно использовать переменные

    Data1.RecordSource = “Select * From Telephone Where Name = ‘ “& A &”’”

    Text1.Text

    В фразе Where можно использовать конечные операции And, Or, Not для

    соединения нескольких выражений или операции сравнения , >=, <>,

    Between, Like, In (для записей в БД)

    Например

    Data1.RecordSource = “Select * From Products

    Where Tovar in (Select Tovar From_ Details Where Price>=25)”

    Помимо запросов SQL можно изменять (Update, Set - новое значение

    Where), добавлять (Insert into), удалять (Delete From) записи в таблице.

    Например

    Dim A As String

    A = “Update Orders”

    A = A + “Set Amount = Amount * 1.1, Cast = Cast * 0.97”

    A = A+ ”Where Order = ‘Цемент’”

    Data1.Database.Execute ... Query - запрос с воздействием

    Свойство Value

    Можно ссылаться на некоторое поле текущей записи, даже если на форме

    нет связанного элемента.

    Например

    Sub

    Dim A As String

    A = Data1.RecordSet.Fields(“Name”).Value

    MsgBox “Фамилия: ” + A

    End Sub

    Объектная модель DAO

    Объектная модель DAO - объектно - ориентированный интерфейс

    процессора БД Jet . Это иерархия классов, которые являются логическим

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

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

    DBEngine

    Workspace

    Database

    TableDef QueryDef Recordset Container

    Relation

    Field Field Field

    Document Field

    Index Parameter

    Error Field

    Рис. Фрагмент объектной иерархии DAO.

    Наличие объектной иерархии означает, что объекты могут содержать

    другие объекты, которые, в свою очередь, могут содержать другие объекты.

    Эта объектное включение реализуется через специальный вид объекта-

    коллекцию. Основное назначение объекта- коллекции - содержать и

    группировать другие объекты. Все объекты, содержащиеся в данной коллекции,

    одного вида.

    Элементы в иерархии DAO фактически классы, а не объекты. Это макеты

    для объектов, создаваемых при формировании приложения базы данных, Класс

    подобен типу данных в том смысле, что он описывает, к какому виду объекта

    происходит обращение. Например, в объявлении Dim Ws As устанавливается, что

    переменная Ws будет служить ссылкой на объект класса Workspace.

    Наверху иерархии - объект DBEngine, непосредственно процессор базы

    данных MS Jet. Он является владельцем коллекции Workspaces (рабочая

    область), которая содержит объекты Workspace. Каждый объект Workspace

    включает коллекцию Databases, которая содержит один или больше объектов

    Database. Каждый объект Database включает коллекцию TableDefs, которая

    содержит один или больше объектов TableDef (определение таблицы) и т.д.

    Объекты члена коллекции индексируются, начиная с 0 и могут быть

    доступны через этот индекс. Например, первый объект TableDef объекта

    Database, именуемого Database1, будет адресоваться как Database1. TableDefs

    (0). Второй TableDef того же объекта Database - Database1. TableDefs (1) и

    т.д. Объекты в иерархии идентифицируются полным путем через вложенные

    коллекции, к которым они принадлежат. Например,

    DBEngine. Workspaces(0). Databases(0). ss TableDefs

    (0).Fields(“Customer”)

    адресуется к полю Customer в первом TableDef коллекции TableDefs

    первого Database коллекции Databases первого Workspace коллекции Workspaces

    объекта DBEngine. Кроме того, для коллекции Fields можно вместо индекса

    использовать свойство Name объекта Field коллекции. При явном обращении к

    члену коллекции по именивместо точки используется восклицательный знак.

    Например, ss

    TableDefs (0).Fields(“Customer”) эквивалентно

    TableDefs (0).Fields!Customer.

    Большинство объектов доступа к данным имеет умолчательные коллекции.

    Это позволяет упрощать программный код. Например, умолчательная коллекция,

    которую содержит объект Recordset - коллекция Fields. Например, все 3

    записи эквивалентны:

    Cust= Recordset1! Customer

    Cust= Recordset1 .Fields!Customer

    Cust= Recordset1 . Fields(“Customer”).

    Программирование с объектами DAO.

    Программирование с объектами DAO заключается в создании объектных

    переменных и управления ими, вызове методов объектов и установке их

    свойств. Например,

    Dim DB As Database, WS As Workspace(“account.mdb”) ‘ Объявления

    переменных

    Set WS=DBEngine. Workspaces(0) ‘ Организуется рабочая область

    (именнованный сеанс пользователя).

    Set DB= WS.OpenDatabase(“account.mdb”) ‘ Метод OpenDatabase объекта

    WS типа Workspace используется для открытия базы данных account.mdb и

    присвоения ссылки на нее объектной переменной DB типа Database.

    Set RS=DB.OpenRecordset(“Clients”) ‘ С помощью метода OpenRecordset

    объекта DB создается набор записей на основе таблицы Clients, ссылка на

    который присваивается переменной RS типа Recordset.

    RS.Index=“ClientID” ‘ Свойству Index объекта RS присваивается

    значение ClientID.

    Создание базы данных

    Процедура построения базы данных Jet - это процесс создания и

    определения объектов доступа к данным, которые соответствуют таблицам,

    полям, индексам и отношениям структуры новой базы данных.

    Пусть требуется создать библиографическую базу данных Biblio.mdb,

    состоящую из 3-х таблиц “Авторы”(Authors), “Названия”(Titles),

    “Издатели”(Publishers), связанных между собой следующими отношениями:

    Titles Authors

    Publishers

    Title AU_ID

    PubID

    Year Published Author

    Name

    ISBN

    Company

    AU_ID

    Address

    PubID

    ...(10)

    Необходимо создать объект Database , определить его логическую

    структуру, добавив объекты TableDef и Field.

    1. Для каждого объекта базы данных создаются новые объектные переменные:

    Dim DB As DataBase, WS As Workspace ‘объект базы данных DataBase

    Dim AuTd As TableDef, TitTd As TableDef, PubTd As TableDef ‘

    объект ‘TableDef для каждой из 3-х таблиц

    Dim AuFlds(2) As Field, TitFlds(5) As Field, PubFlds(10) As Field ‘

    объект Field

    ‘для каждого поля каждой таблицы

    Dim AuIdx AS Index, TitIdx As Index, PubIdx As Index ‘ объект Index для

    ‘каждого индекса каждой из 3-х таблиц

    2.На основе метода CreateDatabase объекта Workspace создается новая база

    данных:

    Set Ws=DBEngine. Workspace(0)

    Set

    Db=Ws.CreateDataBase(“C:\VB\Biblio.mdb”,dbLangGeneral,dbVersion30) ‘

    константа dbLangGeneral определяет языковую версию базы данных, а

    dbVersion30- базу данных Jet версии 3.0

    3. С помощью метода CreateTableDef объекта Database создаются объекты

    Tabledef для каждой таблицы базы данных:

    Set TitTd=DB.CreateTableDef(“Titles”)

    Set AuTd= DB.CreateTableDef(“Authors”)

    Set PubTd= DB.CreateTableDef(“Publishers”)

    4. С помощью метода CreateField объекта TableDef создаются объекты Field

    для каждого поля каждой таблицы базы данных. Для каждого поля

    устанавливаются свойства, определяющие размер, тип данных и другие

    необходимые атрибуты. Например, для поля Author код будет выглядеть

    следующим образом:

    Set AuFlds(0)=AuTd.CreateField(“AU_ID,dbLong)

    ‘ сделать поле счетчиком

    AuFlds(0).Attributes=dbAutoIncrField

    Set AuFlds(1)=AuTd.CreateField(“Author,dbText)

    AuFlds(1)=50 ‘ длина поля

    5.Используя метод Append добавить каждое поле к его таблице, а каждую

    таблицу - к базе данных:

    AuTd.Fields.Append AuFlds(0)

    AuTd.Fields.Append AuFlds(1)

    DB.TableDefs.Append AuTd

    6. Используя метод CreateIndex объекта TableDef, создать индексы для каждой

    таблицы и установить их свойства. Например. для таблицы Authors:

    Set AuIdx=AuTd.CreateIndex(“Au_ID”)

    AuIdx.Primary=True ‘Первичный ключ

    AuIdx.Unique=True ‘Уникальный ключ

    7. Используя метод CreateField объекта Index, создать поля для каждого

    индексного объекта:

    Set NewFld=AuIdx.CreateField(“Au_ID”)

    8. Добавить поле к объекту Index, а объект Index к объекту TableDef:

    AuIdx.Fields.Append NewFld

    AuTd.Indexes.Append AuIdx

    Вновь созданные поля объекта Index не становятся частью объекта

    TableDef. Вместе с тем им дается то же самое свойство Name, что и у поля

    объекта TableDef, которое они должны индексировать. Свойства Type и Size у

    этих полей не определяются.

    Связывание таблиц

    Создание объектов TableDef, которые содержат первичный и внешний

    ключи, позволяют связывать записи в одной таблице с соответствующими

    записями в другой таблице, согласно общим значениям первичного/внешнего

    ключей. При добавлении или удалении записей важно поддерживать так

    называемую ссылочную целостность. Ссылочная целостность означает, что

    внешний ключ в любой ссылающейся таблице всегда должен ссылаться на

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

    поддержания ссылочной целостности используется объект Relation.

    1. Добавить отношение к базе данных :

    Dim Au_Tit As Relation ‘ объект Relation

    Set Au_Tit =Db.CreateRelation(“Authors_Titles”) ‘ создается объект

    Relation с помощью метода .CreateRelation

    Au_Tit.Table=“Authors” ‘ Устанавливаются свойства объекта Relation

    Au_Tit.ForegnTable=“ Titles”

    2. Создать поле, которое в отношении будет определять общее поле

    первичного/внешнего ключа:

    DimTempField As Field

    Set TempField = Au_Tit.CreateField(“Au_Id”) ‘ создается связующее

    поле с помощью метода CreateField

    TempField. ForegnName =“Au_Id” ‘ Устанавливаются свойства объекта

    Field

    3. Добавить объект Fields к объекту Relation, а объект Relation к

    объекту Database с помощью метода Append:

    Au_Tit.Fields.Append TempField

    Db.Relations..Append Au_Tit

    Связывание таблиц внешних баз данных

    Кроме определения новых таблиц можно присоединять таблицы из любой

    поддерживаемой внешней базы данных или из другой базы данных Jet. При

    связывании таблицы информация соединения сохраняется во внутренней базе

    данных Jet, и соединение будет устанавливаться автоматически всякий раз при

    открытии этой базы данных. Сами же данные остаются во внешней базе

    данных.

    Процедура связывания таблицы внешней базы данных подобна определению

    и созданию новой внутренней таблицы, за исключением того, что при создании

    объекта TableDef необходимо определить свойства SourceTableName и Connect.

    Кроме того, для этой таблицы нельзя связывания создавать или добавлять

    новые объекты Field и Index.

    Для связывания внешней таблицы с базой данных необходимо:

    Создать для связываемой таблицы новый объект TableDef, используя метод

    CreateTableDef объекта Database. Назначить таблице новое имя (свойство

    Name). Например, чтобы присоединить таблицу Сustomers из базы данных

    Stocks.mdb к базе данных Biblio.mdb,можно записать:

    Set NewTd=DB.CreateTableDef(“Customers”) ‘ Предполагается , что база

    данных Biblio.mdb открыта методом OpenDatabase и ей назначена переменная

    DB.

    2. Установить свойства SourceTableName и Connect объекта TableDef:

    NewTd. SourceTableName=“Customers”

    NewTd. Connect=“;DATABASE=C:\Access\Stocks.mdb;”

    3.Добавить новый объект TableDef к базе данных:

    DB.TableDefs.Append NewTd

    Модификация базы данных

    Процедуры изменения базы данных подобны ее созданию. Используются те

    же методы Create и Append.

    1. Для добавления таблицы к базе данных необходимо добавить новый

    объект TableDef к существующей коллекции TableDefs. Например:

    Dim DB As DataBase

    Dim NewTd As TableDef ‘ Создать новый объект TableDef

    Dim NewFld As Field ‘Создать новый объект Field

    Set Db=DBEngine. Workspace(0).OpenDatabase(“Biblio.mdb”)

    Set NewTd=DB.CreateTableDef(“NewTable”)

    Set NewFld= NewTd.CreateField(“NewField”,dbInteger)

    NewTd.Fields.Append NewFld ‘добавить поле к таблице

    DB.TableDefs.Append NewTd ‘добавить таблицу к базе данных

    Db.Close ‘Закрыть базу данных

    1. Для добавления поля к таблице необходимо добавить новый объект

    Field к существующей коллекции Fields

    Dim DB As DataBase

    Dim Td As TableDef

    Dim Fld As Field ‘Создать новый объект Field

    Set Db=DBEngine. Workspace(0).OpenDatabase(“C:\Biblio.mdb”)

    Set Td=DB. TableDefs(“Authors”)

    Set Fld= Td.CreateField(“NewField1”,dbText,30) ‘Создать первое новое

    поле

    Td.Fields.Append Fld ‘добавить поле к коллекции Fields

    Set Fld= Td.CreateField(“NewField2”,dbText,20) ‘Создать второе новое

    поле с помощью той же переменной

    Td.Fields.Append Fld ‘добавить еще один объект к коллекции Fields

    Db.Close ‘Закрыть базу данных

    2. Для добавления таблицы к базе данных необходимо добавить новый

    объект TableDef к существующей коллекции TableDefs. Например:

    Dim DB As DataBase

    Dim NewTd As TableDef ‘ Создать новый объект TableDef

    Dim NewFld As Field ‘Создать новый объект Field

    Set Db=DBEngine. Workspace(0).OpenDatabase(“C:\Biblio.mdb”)

    Set NewTd=DB.CreateTableDef(“NewTable”)

    Set NewFld= NewTd.CreateField(“NewField”,dbInteger)

    NewTd.Fields.Append NewFld ‘добавить поле к таблице

    DB.TableDefs.Append NewTd ‘добавить таблицу к базе данных

    Db.Close ‘Закрыть базу данных

    3. Для добавления индекса к таблице необходимо добавить новый объект

    Index к существующей коллекции Indexes . Например:

    Dim DB As DataBase, Td As TableDef, NewIdx As Index ,NewFld As Field

    Set Db=DBEngine. Workspace(0).OpenDatabase(“C:\Biblio.mdb”)

    Set Td=DB. TableDefs(“Authors”)

    Set NewIdx =Td.CreateIndex(“Address_Index”)

    NewIdx.Unique=False

    Set NewFld= NewIdx.CreateField(“Address”,)

    NewIdx.Unique=False

    NewIdx.Fields.Append NewFld ‘добавить поле к объекту Index

    Td. Indexes.Append NewIdx ‘добавить объект Index к TableDef

    Db.Close ‘Закрыть базу данных

    4. Для удаления таблицы используется метод Delete коллекции

    TableDefs. Этот метод удаляет из таблицы все поля, индексы и данные,

    содержащиеся внутри таблицы. Например:

    Db.TableDefs.Delete “Authors”

    5. Для удаления поля (объекта Field) используется метод Delete

    объекта TableDef.

    Для удаления индексированного поля необходимо сначала удалить

    индекс, а также созданные посредством этого индекса объекты Relation. После

    этого можно будет удалить объект Field или объект TableDef, который

    является частью отношения.

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

    TableDefs.

    Например:

    Db.TableDefs(“Authors”). Indexes.Delete “Address_Index” ‘ Из

    коллекции Indexes в таблице Authors удаляется индекс “Address_Index”.

    Нельзя удалять объект Index, который формирует объект Relation.

    7. Для изменения поля необходимо создать новый объект TableDef,

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

    новую таблицу, удалив старую.

    Модификацию базы данных можно также проводить с помощью специальных

    запросов SQL.

    Работа с записями базы данных

    Работа с записями базы данных(добавление, удаление, модификация,

    Страницы: 1, 2, 3, 4


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.