- •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.
27. Основные методы модифицируемого набора данных. Добавление и удаление записей и проблемы удаления.
Для рассм-я навигацион. методов необх-мо использ-ть понятия курсора НД (указатель текущей записи в конкретн НД).
Сущ. 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;
Вставка записи.
Вставить запись, как и отредактир-ть ее м. только в модифицирован. набор. Для удволетв-я записи:
-НД перевод. в режим вставки
-задаются знач-я для полей нов. записи
-подтверждается добавление записи или производиться отмена.
4 метода: Insert, InsertRecord, Append, AppendRecord.
Insert вставляет запись, сдвигая вперед текущее состояние курсора.
Append автоматич. вставл. запись в конец.
InsertRecord и Append наполняют запись или строку знач-ями или же в текущую или в конец НД. При присваивании новых знач-й отдельным полям или записи в целом можно обратиться к методу Post или SetFields или отменить объявлен. действие.
….
zakazchik.insert;
zakazchik.fieldbyname(‘name’).asstring:=edit1.text;
zakazchik.post;…
использ-е InsertRecord
Zakazchik.InsertRecord[nil,’Иванов’,nil]
удалить запись.
можно также только из модифицирован. НД с пом. метода Delete при удалении записи послед-но генерир-ся событие BeforeDelete и AfterDelete, кот. можно использ-ть для проверки выполн-я условия.
Если выполн-е метода приводит к ошибке, то генирир. исключение OnDeleteError на использ-и вычиляемого поля.
.Lookup:Boolean;
NewValue:variant;
OldValue:variant;
По умолчанию для каждого комп-та ист-ка доступны все поля НД. Тогда к любому полю можно обратиться через метод FieldByName.
function FieldByName( const: FieldName:string):Tfields; property Fields[Index]:Tfield;
Для работы с конкретн. полем на этапе конструир-я программы с помощью редактора полей создается объект поля класса TField; редактор вызыв. двойн. щелчком по комп-ту TTable и с пом. вспомогат. меню в появившемся диалогом окне инспектора объектов производим настройку полей. редактор полей присваивает объектом поля имена путем сцепления имени ист-ка и имени поля.
При прямом обращении использ-ся метод FieldByName или св-во Fields
Zakazchik. FieldByName(‘FAM’).AsString:=’Григорьев’;
Zakazchik.Fields(‘1’).AsString:= ’Григорьев’;
28. Назначение компонента tdbGrid в создании бд. Основные свойства и методы компонента.
В тех случаях, когда таблица имеет небольш. кол-во полей, для предъявления данных пользователю и модификации таблицы целесообразно использ-ть комп-т DBGrid (страница Data Controls). Комп-т DBGrid предъявляет данные в табличной форме и имеет все необх. св-ва для редактир-я записей, вставки новых записей и удаления записей.
Необх. учитывать: если измен-ть данные в тек. записи и перейти к др. записи, DBGrid автомат. вызывает метод Post и измен-я сохр-ся в таблице, даже если они были сделаны случайно. Аналогичные действия производятся после вставки новой записи. При удалении тек. записи DBGrid запрашивает у пользователя подтверждение, но текст сообщ-я на англ. языке, не удобно. В качестве заголовков колонок по умолчанию использ-ся имена полей таблицы, также не понятно пользователю.
Чтобы не заносить в базу измен-я, можно использ-ть обработчики события BeforePost набора данных, где можно согласиться с измен-ями либо отказаться от них. в случае отказа необх-мо вызвать метод Cancel. чтобы пользователь не видел отмененных измен-й, необх-мо переместить указатель записи на одну запись назад, а затем вперед. Здесь же приходится вызвать «тихое» исключение (Abort). Иначе при отказе от вставлен. записи выдается сообще-е о неверном ключе.
procedure TfmIzdelie.BeforePost(DataSet: TDataSet);
begin
if MessageDlg('Сохранить запись?',mtWarning,[mbYes,mbNo],0)=mrNo then
begin ttIzdelie.Cancel;
ttIzdelie.Prior;
ttIzdelie.Next;
Abort; end;end;
Комп-т DBgrid, размещенный на форме можно переименовать с пом. св-ва Name. Чтобы связать его с набором данных Table, его свойству DataSource присвойте имя соответствующего компонента формы (выбирается из списка). Для того, чтобы дать колонкам DBGrid названия, необходимо для всех полей набора данных Table создать столбцы DBGrid. Для создания столбцов щелкните в инспекторе объектов по свойству Columns и затем щелчком по кнопке, появившейся в правой части поля Columns, вызовите редактор столбцов. Для создания нового столбца щелкните по кнопке «Add New». В окне редактора появится строка с надписью «0-Tcolumn», а в инспекторе объектов появится список свойств столбца. Присвойте свойству столбца FieldName имя того поля, которое он будет отображать (выбирается из списка). Свойству столбца Title.Caption присвойте текст заголовка колонки. Почти все остальные свойства столбца можно оставить без изменений. Таким же способом можно создать столбцы для остальных полей набора данных. Закройте редактор столбцов.
Динамич. св-ва. Св-ва столбца внесен в момент дин. немедленно отображаются в DBGrid. Пример динамич. опред-я св-ва столбца.
procedure TForm1.Button2Click(…)
begin
DBGrid1.Colums.Clear;
DBGrid1.Colums.Add;
DBGrid1.Colums[0].FieldName:=’Fam_z’;
DBGrid1.Colums[0].TitleCaption:=’Фамилия’;
DBGrid1.Colums.Add;
DBGrid1.Colums[1].FieldName:=’Kod’;…
Комп-т TDBCtrlGrid представл. собой таблицу каждый ряд или каждая ячейка отображается в виде панелей, кот. могут сод-ть в себе др. комп-ты из которых проектир-ся только 1ая, а ост. повторяют структуру, но относятся к след. записи.