- •8. Типы структур ис. Их характеристики, достоиства, недостатки.
- •2 Файл серверная архитектура.
- •3. Клиент серверная архитектура.
- •4. Многозвенная архитектура.
- •9. Определение реляционной модели данных, характеристика ее основных элементов.
- •10. Основные подходы к проектированию структур данных и проблемы определения структур данных.
- •12. Основная задача проектирования бд. Метод декомпозиции- классический метод нормализации отношений.
- •14. Формирование отношений для связи 1:м при кп обязательном для м связной сущности.
- •15. Формирование отношений для связи 1:м при кп необязательном для м-связной сущности.
- •16. Формирование отношений для связи м:м.
- •17. Этапы проектирования и назначение диаграммы er-экземпляров и er-типа.
- •18. Фильтрация записей. Фильтрация по выражению.
- •19. Фильтрация записей. Фильтрация по диапазону.
- •20. Создание приложения бд в Delphi (компоненты, обеспечивающие доступ к данным, структура и работа приложения).
- •21. Схема взаимодействия компонентов при проектировании бд в Delphi.
- •Связь этих компонентов друг с другом и с базой данных можно представить схемой приведенной ниже:
- •22. Основные этапы создания приложения бд в Delphi.
- •23. Назначение компонента tDataSource в создании бд. Основные свойства и методы компонента.
- •24. Назначение компонента тТablе в создании бд. Основные свойства и методы компонента.
- •25. Приёмы работы с набором данных(нд). Состояния набора данных. Метод State.
- •26. Основные методы модифицируемого набора данных(нд). Редактирование набора данных и проблемы редактирования.
- •27. Основные методы модифицируемого набора данных. Добавление и удаление записей и проблемы удаления.
- •28. Назначение компонента tdbGrid в создании бд. Основные свойства и методы компонента.
- •29. Навигация по набору данных. Назначение компонента tdbNavigator в создании бд. Основные свойства и методы компонента.
- •30. Методы поиска записей в наборе данных. Метод Locate.
- •31. Методы поиска записей в наборе данных. Метод Lookup.
- •32. Методы поиска записей в наборе данных. Методы FindKey и FindNearest(инкрементный поиск записей).
- •33. Отображение и редактирование данных. Классификация компонентов отображения данных.
- •34. Назначение компонента tQuery- Основные свойства и методы.
- •35. Теоретические языки запросов. Sql - структурированный язык запросов. Основные методы его использования.
- •36.Основные операторы языка sql. Оператор select: назначение, формат оператора.
- •37. Предложение where в операторе select. Формирование запроса по условию поиска и внутреннее соединение таблицы.
- •38. Использование оператора select для сортировки нд и устранения повторяющихся значений.
- •39. Использование оператора select для расчета вычисляемых столбцов и группировки записей.
- •40. Использование оператора select для задания сложных условий поиска (операторы and, or, not, between).
- •41. Использование оператора select для внешнего соединения. Формат запроса.
- •42. Операторы insert, delete, update. Форматы операторов и назначение.
- •43. Ссылочная целостность таблиц бд и механизмы ее осуществления. Понятие транзакции.
- •44. Типы полей данных, поддерживаемые в Delphi и их характеристики. Объявление полей и типов полей при создании приложения.
- •46. Использование bde Administrator при создании бд.
- •47. Роль индексов в субд. Определение индексов. Связывание таблиц бд.
- •48. Работа с визуальным компонентом tdbGrid и настройка полей таблиц.
- •49. Навигация по набору данных. Использование визуального компонента tdbNavigator.
- •50. Создание поля просмотра и вычисляемого поля. Основные проблемы и пути их решения.
- •51. Разработка отчетов с помощью средства Quick Report.
- •52. Разработка отчетов с помощью средства Rave Reports.
26. Основные методы модифицируемого набора данных(нд). Редактирование набора данных и проблемы редактирования.
Для рассм-я навигацион. методов необх-мо использ-ть понятия курсора НД (указатель текущей записи в конкретн НД).
Сущ. 5 методов измен-я курсора НД.
Procedure First; устан. курсор на 1ую позицию в НД
Last; устан. курсор на последн.
Next; устан. курсор на след. запись
Prior; устан. курсор на предыд. запись
function MoveBy(n:Integer):integer; перемещает курсор на n записей к концу НД, если n>0 и к началу, если n<0.
Св-во BOF, EOF класса TDataSet имеет тип Boolean и показыв. не явл. ли текущ. запись 1ой или последней соотв-но.
Пр.1… Table1.First;
While not Table1.EOF do begin…. Table.Next; end;
Т.к. BDE не способна опред-ть место нахождения курсора в НД возникает потребность проверки момента попадания на 1ую или последн. запись для комфортности работы.
… with ttZakazch do begin
if not BOF then Prior else begin First;end;
Редактир-е НД.
ReadOnly:=True; св-во опред-ет возможна ли модификация НД, это св-во м. изменять, если НД закрыт. Table1.Active:=False;
Для редактир-я текущей записи НД необх. перевести его в режим редактир-я, кот. можно осущ-ть 2мя способами: программно Edit и визуально посредством компонентов отображения.
Для автоматич. переключения в режим редактир-я у комп-та DataSource необх-мо устан. св-во DataEdit:=True; У не модифицируемого НД св-во CanModify:= false;
У модифицируемого НД будут произведены след. действия:
сгенерируется событие BeforeEdit.
из НД повторно считывается текущая запись и блокируется доступ к ней др. пользователей и временно устан-ся только для чтения.
пересчитываются все вычисляемые поля
НД перевод в реж. редактир-я
генерир. событие OnDataChange для связан. с НД ист-ком данных.
AfterEdit генерир. событие.
После редактир-я необх-мо выполнить сохр-е или отказаться от сохр-я. Для сохр-я изменений:
-записываются данные в физич. таблицу
-снимается блокировка записи
-переход в реж. просмотра.
При вызове метода Post мб сгенирир. исключит. ситуация, если НД не находился в реж. редактир-я. Если после модификации возникает ситуация в рез-те кот. измен-е не отображаются в визуальн. комп-те, то необх-мо обратиться к методу Refresh, кот. обновляет сод-е.
Пр.
if zakazchik.CanModify=true then begin zakazchik.edit;
zakazchik.FieldByname(‘Name’);
AsString:=Edit1.text; zakazchik.post; zakazchik.refresh; end
else Message (‘ Редактир-ть нельзя ‘, mtInformation,[mtOk],0)
При измен-и данных необх-мо выполнить проверку на наличие записей в дочерней таблице и запретить редактир-е, если запись в дочерн. таблице сущ.
Пр.
with tbZakazch do begin
if tbZakaz.Locate(‘Zakazch_cod’,Fieldbyname(‘Zakazch_cod’).Asvariant,[]) then
ShowMessage(‘ его удалять нельзя, у него есть заказы ‘) else if
MessageDlg(‘ удалить ‘,mtConfirmation,[mbYes,mbNo],0)=mbYes then Delete; end;…
При отказе от измен-ий необх-мо воспольз-ся методом Cancel, кот. возвратит Нд в реж. просмотра. При обращении к методу Cancel будут сгенер-ны 2 метода: BeforeCancel и AfterCancel.
Метод Post можно заменить на метод SetFields, если редактир-ся текущая запись, этот метода имеет 1 пар-р Values, сод-щий массив знач-й, кот. присваиваются полям НД.
Пор-к следования полей НД. Если поле остается без измен-ий, то ей присваивается знач-е nil(пустое).