ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.01.2025
Просмотров: 2237
Скачиваний: 3
СОДЕРЖАНИЕ
8. Типы структур ис. Их характеристики, достоиства, недостатки.
3. Клиент серверная архитектура.
9. Определение реляционной модели данных, характеристика ее основных элементов.
10. Основные подходы к проектированию структур данных и проблемы определения структур данных.
14. Формирование отношений для связи 1:м при кп обязательном для м связной сущности.
15. Формирование отношений для связи 1:м при кп необязательном для м-связной сущности.
16. Формирование отношений для связи м:м.
17. Этапы проектирования и назначение диаграммы er-экземпляров и er-типа.
18. Фильтрация записей. Фильтрация по выражению.
19. Фильтрация записей. Фильтрация по диапазону.
21. Схема взаимодействия компонентов при проектировании бд в Delphi.
Связь этих компонентов друг с другом и с базой данных можно представить схемой приведенной ниже:
22. Основные этапы создания приложения бд в Delphi.
23. Назначение компонента tDataSource в создании бд. Основные свойства и методы компонента.
24. Назначение компонента тТablе в создании бд. Основные свойства и методы компонента.
25. Приёмы работы с набором данных(нд). Состояния набора данных. Метод State.
28. Назначение компонента tdbGrid в создании бд. Основные свойства и методы компонента.
30. Методы поиска записей в наборе данных. Метод Locate.
31. Методы поиска записей в наборе данных. Метод Lookup.
32. Методы поиска записей в наборе данных. Методы FindKey и FindNearest(инкрементный поиск записей).
33. Отображение и редактирование данных. Классификация компонентов отображения данных.
34. Назначение компонента tQuery- Основные свойства и методы.
36.Основные операторы языка sql. Оператор select: назначение, формат оператора.
38. Использование оператора select для сортировки нд и устранения повторяющихся значений.
39. Использование оператора select для расчета вычисляемых столбцов и группировки записей.
41. Использование оператора select для внешнего соединения. Формат запроса.
42. Операторы insert, delete, update. Форматы операторов и назначение.
43. Ссылочная целостность таблиц бд и механизмы ее осуществления. Понятие транзакции.
46. Использование bde Administrator при создании бд.
47. Роль индексов в субд. Определение индексов. Связывание таблиц бд.
48. Работа с визуальным компонентом tdbGrid и настройка полей таблиц.
49. Навигация по набору данных. Использование визуального компонента tdbNavigator.
50. Создание поля просмотра и вычисляемого поля. Основные проблемы и пути их решения.
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(пустое).
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ая, а ост. повторяют структуру, но относятся к след. записи.