Статьи

НОУ ІНТУЇТ | лекція | Бази даних

  1. MSНFlexGrid і MSFlexGrid - елементи управління для відображення і оперування даними в табличному форматі
  2. Практична робота 28. MSFIexGrid
  3. Реплікація і синхронізація баз даних
  4. Практична робота 29. Реплікація і синхронізація баз даних

MSНFlexGrid і MSFlexGrid - елементи управління для відображення і оперування даними в табличному форматі

Елемент управління MSFlexGrid, виведений на форму при роботах з базами даних, являє собою сітки рядків і стовпців. MSFlexGrid підтримує такі функції:

  • читання даних, якщо елементу MSFlexGrid призначений елемент керування даними; зв'язування даних для читання,
  • динамічна перестановка стовпців і рядків; автоматична перегрупування даних при упорядкуванні стовпців,
  • адаптація до існуючого програмного коду для пов'язаного елемента управління DataGrid,
  • управління приміщенням в клітинку тексту / графіки; перенос тексту в осередках.

Висновок MSFlexGrid на панель елементів управління: меню Проект (Project) Компоненти (Components) Microsoft FlexGrid 6.0.

Властивість Rows таблиці, виведеної на форму при використанні MSFlexGrid, можна використовувати для завдання кількості рядків в таблиці, а властивість Cols - для завдання кількості стовпців. на Мал. 4.4 представлена ​​сітка MSFlexGrid. В якості першого індексу осередку використовується номер рядка, в якості другого - номер стовпчика. Наприклад, комірка в лівому верхньому кутку таблиці має адресу 0, 0. Щоб помістити дані в осередок таблиці MSFlexGrid, потрібно використовувати властивість TextMatrix і задати координати осередку.

Приклад 1: помістити слово "елемент" в клітинку (2, 1): MSFIexGridl.TextMatrix (2,1) = "елемент"

Приклад 2: ввести число 3000 в клітинку (5, 2): MSFIexGridl.TextMatrix (5,2) = 3000

MSFlexGrid забезпечує безліч стандартних стилів форматування осередків. Якщо при роботі потрібно додати нові рядки в таблицю, то використовується метод Addltem.

MSHFIexGrid - Microsoft Hierarchical FlexGrid - ієрархічна гнучка таблиця підтримує в порівнянні з MSFIexGrid безліч додаткових функцій:

  • ActiveX Data Binding - прив'язування даних ActiveX, коли властивості DataSource і DataMember елемента управління пов'язані з постачальником даних,
  • зв'язування через Data Binding Manager - Диспетчер зв'язування даних в Visual Basic,
  • прив'язування безпосередньо до згрупованим і пов'язаним наборам записів ADO (ADO RecordSet) з ієрархії Command (Управління),
  • створення відображень згрупованих і пов'язаних наборів RecordSet.

Практична робота 28. MSFIexGrid

  1. Створити базу даних ACCESS з таблицями, наприклад, student (див. табл. 4.7 ) І ін, зберегти в файлі stud.mdb; згодом це ім'я вибирається в стандартному діалоговому вікні Open, Таблиця 4.7. Вміст таблиці student бази даних Num Name Geschl Geb_dat Gruppe 1012 Wolf M 20.08.76 Kp-3 1013 Hase M 30.09.77 Kp-4 1021 Weiss W 24.06.77 Kp-3 1040 Kalb M 23.03.77 Kp-3
  2. створити на формі об'єкти (див. Мал. 4.4 і код, даний нижче):
  3. ввести код, даний нижче, пояснення дані під коментарями: Private Sub Command1_Click () Dim i As Integer 'очистити властивість об'єкта CommonDialog, що містить' ім'я бази даних CommonDialog1.FileName = "" 'стартувати CommonDialog CommonDialog1.Action = 1' виводиться стандартне діалогове вікно Open; 'Потрібно вибрати необхідну базу даних. 'Зв'язати об'єкт Data1 з файлом бази даних, обраним з' допомогою елемента управління CommonDialog1 Data1.DatabaseName = CommonDialog1.FileName 'оновити вміст елемента управління Data1 Data1.Refresh' читати в циклі імена таблиць бази даних і занести 'їх в ComboBox (AddItem) For i = 0 To Data1.Database.TableDefs.Count - 1 'властивість Count визначає колічестко елементів Combo1.AddItem (Data1.Database.TableDefs (i) .Name) Next i' після додавання імeн таблиць в ComboBox очистити теку- 'ний значення властивості Text Combo1.Text = "" 'введeнний в текстове поле рядок SQL привласнити' властивості RecordSource елемента Data1 Data1.RecordSource = Text1.Text 'оновити вміст Data1. Реалізується запит, т.к 'властивості RecordSource присвоєно значення рядка SQL Data1.Refresh' решта коду може бути замінена 'наступним оператором присвоювання:' MSFlexGrid1.DataSource = Data1 в Вікні властивостей. Ця 'частина коду потрібна лише для того, щоб користувач міг' освоїти роботу з осередками MSFlexGrid. 'Властивість MSFlexGrid1.Cols - характеризує кількість' стовпців в сітці; Data1.Recordset.Fields.Count - кількість 'стовпців таблиці бази даних, до якої зроблений' SQL-запит MSFlexGrid1.Cols = Data1.Recordset.Fields.Count 'MSFlexGrid1.Rows - кількість рядків в сітці' встановити рівним 1 MSFlexGrid1.Rows = 1 'в елементі управління MSFlexGrid1 доступ до рядків і' стовпцями проводиться починаючи з осередки (0,0), 'властивість TextMatrix (X, Y) дозволяє отримати доступ' до окремих осередків таблиці For i = 0 To Data1.Recordset.Fields.Count - 1 'занести назву імeн полів таблиці бази даних в' перший рядок MSFlexGrid1 MSFlexGrid1.TextMatrix (0, i) = Data1.Recordset.Fields (i) .Name Next i 'перевірити, чи є запис в таблиці (рядок) по-' останньої; організувати цикл проходу по рядках Do While Not Data1.Recordset.EOF 'збільшити кількість рядків в MSFlexGrid на одиницю MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1' цикл перенесення даних з Data1 в MSFlexGrid1 For i = 0 To Data1.Recordset.Fields.Count - 1 'перенесення даних цього рядка (по полях). Якщо дані в 'осередку Data1 є, то перенести їх в' таблицю MSFlexGrid1 If Not Data1.Recordset.Fields (i) = "" Then MSFlexGrid1.TextMatrix (MSFlexGrid1.Rows - 1, i) = Data1.Recordset.Fields (i) End If 'кінець циклу перенесення даних з елемента управління Data1' в таблицю MSFlexGrid1 для одного рядка Next i 'використовувати метод MoveNext - перехід до' наступному рядку Data1.Recordset.MoveNext Loop End Sub
  4. стартувати проект, ввести в текстове поле SQL-рядок (запит) SELECT * FROM student, зробити клацання на командній кнопці, в виведеному стандартному діалоговому вікні Open вибрати базу даних stud.mdb. У таблицю MSFlexGrid виводяться результати запиту. Одночасно в список елемента управління ComboBox виводяться імена всіх наявних таблиць, Мал. 4.4 .
  5. вибрати таблицю в списку ComboBox, змінити запит - ввести новий запит для іншої таблиці (ввести цей запит в текстове поле), зробити клацання на командній кнопці, спостерігати результат.

Реплікація і синхронізація баз даних

Реплицировать означає тиражувати. Якщо установа має в своєму розпорядженні мережею, тоді доцільно мати основну копію бази даних (головна репліка) в головному підрозділі фірми і кілька еe копій (реплік) в інших приміщеннях / на інших територіях. Користувачі баз даних на інших територіях в процесі роботи (наприклад, в результаті реалізації / придбання виробів, перелік яких містить база даних) роблять зміни таблиць в своїх копіях (репліках). Пізніше (періодично) кожний повинен внести їм зроблені зміни в головну репліку і отримати інформацію про зміни, зроблених іншими користувачами. Це процес синхронізації - приведення Реплікаційний набору в стан, коли репліки однакові.

Нехай є база даних sabi.mdb c кількома таблицями. Перетворимо sabi.mdb в головну репліку. Створимо на дисковому пристрої С: каталог rep, який будемо використовувати для проекту. Спочатку потрібно переглянути базу даних в додатку Visdata: меню Додавання Візуальний менеджер даних (Visual Data Manager) файл Відкрити базу даних Microsoft Access в виведеному списку вибрати файл sabi.mdb. У вікно програми виводиться список таблиць бази даних. Існують також системні таблиці; для їх виведення на екран за допомогою команди: Utility Preferences Include System Tables. Представляє особливий інтерес об'єкт Properties - властивості вихідної бази даних: Name = C: \: sabi.mdb, Connect *,:.

Практична робота 29. Реплікація і синхронізація баз даних

Для набуття навичок реплікації і синхронізації потрібно виконати кілька етапів:

  1. зробити посилання на бібліотеку Microsoft Jet and Replication Objects 2.1 Library (меню Проект посилання бібліотека OK) і бібліотеку, що забезпечує роботу з DAO: Microsoft DAO 3,54 Objects Library,
  2. створити головну репліку (Command1_Click (), див. нижче):
    • відкрити базу даних,
    • створити властивість Replicable і привласнити йому значення "Т",
  3. Створено копію головної репліки (Command2_Click (), див. нижче):
    • відкрити базу даних,
    • використовувати метод MakeReplica,
  4. внести зміни до головного репліку і еe копію:
    • внести зміну в 1-ій записи головною репліки і копії,
    • зафіксувати зміну значення поля s_Generation (див. нижче) при зміні вмісту таблиць; там з'являться нулі замість одиниць і відповідний запис буде пізніше скопійована при виконанню процедури синхронізації,
  5. виконання синхронізації - копіювання змін головною репліки в репліку і навпаки (Command3_Click (), див. нижче):
    • відкрити базу даних,
    • використовувати метод Cynchronize об'єкта Database.

Послідовність дій:

  • ввести код процедур Command1_Click () і Command2_Click (), див. нижче,
  • стартувати першу процедуру (створення головної репліки),
  • після зупинки виконання проекту відкрити базу даних (головну репліку) в додатку Visdata, знайти додані поля кожної таблиці: в кожну таблицю головною репліки додані 3 поля:
    • s_Generation, що ідентифікує записи, які були змінені Вами / співробітниками установи. Після зміни записів, вміст поля змінюється з 1 на 0 (спочатку всюди була 1) і в процесі синхронізації, тобто пізніше, пересилаються тільки записи, яким відповідає значення поля 0,
    • s_GUID, що містить ідентифікатор кожного запису,
    • s_Lineage, що зберігає кількість змін записи.

Пояснення: після створення головної репліки в головній репліці з'явилися нові системні таблиці, з'явилися додаткові властивості головною репліки. Властивість Replicable (встановлено в Т) означає, що для бази даних можна створювати репліки. Після створення головної репліки з'явилися нові властивості будь-якої таблиці головною репліки.

  • стартувати другу процедуру (створення репліки),
  • після зупинки виконання проекту переглянути базу даних в додатку Visdata (в базі даних містяться ті ж самі таблиці),
  • відкрити таблицю MSysReplicas, що містить інформацію про кожного члена Реплікаційний набору, де з'явилася друга запис через створення репліки (раніше була тільки одна запис),
  • поочерeдно відкрити бази даних (головну репліку і репліку) в будь-якому додатку, призначеному для роботи з базами даних і зробити зміни в одному записі будь-якої таблиці. Спостерігати зміни поля s_Generation - поява чисел 0 замість 1 після внесення змін Вами / співробітниками установи в запису таблиць головною репліки і репліки,
  • створити і стартувати процедуру Command3_Click (), см. код нижче,
  • після зупинки виконання проекту завантажити репліку в додаток Visdata, переглянути вміст відповідної таблиці (в цій таблиці з'явилися зміни, зроблені рані в головній репліці) і значення поля s_Generation: в процесі синхронізації значення поля збільшується на 1 при кожній зміні записи.

    У тих випадках, коли в різних репліках змінюється одна і та ж запис несkолько раз, то в підсумку в процесі синхронізації копіюються дані тієї репліки, яка змінила запис більше число раз. У разі рівного розподілу числа змін Microsoft Jet вибирає запис з таблиці з найменшим значенням ReplicaID,

  • Зробити зміни в репліці 1 раз, в головній репліці - 2 рази. Зробити клацання на третій командній кнопці, потім перевірити результат синхронізації.
Private Sub Command1_Click () 'створення головної репліки Dim dbHaupt As Database, replicaProp As Property' відкрити базу Set dbHaupt = OpenDatabase ( "C: \ rep \ sabi.mdb", True) 'створити властивість Replicable Set replicaProp = dbHaupt.CreateProperty ( " Replicable ", dbText," T ") dbHaupt.Properties.Append replicaProp 'додати властивість' властивості привласнити значення True dbHaupt.Properties (" Replicable ") =" T "End Sub Private Sub Command2_Click () 'створення репліки Dim dbHaupt As Database' відкрити базу Set dbHaupt = OpenDatabase ( "C: \ rep \ sabi.mdb", True) 'створити новий об'єкт Реплікаційний набору dbHaupt.MakeReplica "C: \ rep \ sabicopy.mdb", "Replica of" & "dbHaupt" dbHaupt. Close End Sub Private Sub Command3_Click () 'процес синхронізації Dim dbHaupt As Database' відкрити базу даних - головну реплєї Іку Set dbHaup = OpenDatabase ( "C: \ rep \ sabi.mdb", True) 'копіювання змін dbHaupt.Synchronize "C: \ rep \ sabicopy.mdb" End Sub

Новости

Как создать фото из видео
Кризис заставляет искать дополнительные источники дохода. Одним из таких источников может стать торговля на валютном рынке Форекс. Но чтобы не потерять свои деньги необходимо работать с надежным брокером.

Как оформить группу в вконтакте видео
Дано хотел свой магазин в вк, но не знал с чего начать его делать. Так как хотелось не банальный магазин с кучей ссылок и фото, а красиво оформленный. С меню, с аватаркой. После просмотра видео создал

Как оформить диск малыш от рождения до года из фото и видео
Оформить диск "Малыш от рождения до года" из фото и видео можно совершенно разными способами! Кто-то для достижения данной цели идет на шоу-таланты, кто-то пользуется услугами профессионалов, а кто-то