- •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.
30. Методы поиска записей в наборе данных. Метод Locate.
Поиск записи, удовлетворющей заданным условиям, означает переход к этой записи. Поиск по индексированным полям происходит быстрее. Кроме того ряд методов поиска может работать только с индексированными полями. Для поиска данных можно использовать методы:
FindFirst – поиск первого подходящего значения
FindLast – поиск последнего подходящего значения
FindNext – поиск следующего подходящего значения
FindPrior – поиск записи предшествующей искомой
Locate – для поиска по одному или нескольким полям
Lookup – просмотр не изменяет положение курсора, возвращает значение требуемых полей найденной записи
Поисковые признаки задаются в списке параметров методов. Последовательный поиск можно организовать с помощью метода
FindNearest. При этом поиск производится по мере ввода поискового признака. Поиск может выполняться по первичному ключу (главному индексу) или по вторичному индексу. Перед выполнением поиска должен быть задан нужный индекс.
Для поиска методом Locate поля для поиска могут быть неиндексированными.
Метод Locate ищет первую запись, удовлетворяющую критерию поиска, и если такая запись найдена, делает ее текущей. В этом случае в качестве результата возвращается значение True. Если запись не найдена, возвращается значение False и курсор не меняет своего положения. function Locate(const KeyFields: String;
const KeyValues: Variant;Options: TLocateOptions): Boolean:
Список KeyFields указывает поле или несколько полей, по которым ведется поиск. В случае нескольких поисковых полей их названия разделяются точкой с запятой. Критерии поиска задаются в вариантном массиве KeyValues так, что i-e значение в KeyValues ставится в соответствие i-му полю в KeyFields. Параметр Options указывает необязательные значения режимов поиска:
1) loCaselnsensitive — поиск ведется без учета возможной разницы регистра букв в текстовых полях и в критерии поиска;
2) loPartialKey — запись считается удовлетворяющей условию поиска, если она содержит часть поискового контекста; например, удовлетворяющими контексту «Диа» будут признаны записи со значениями в поле поиска «Диалект», «Диалог-МИФИ», «ДиаСофт» и т. д.
Метод Locate производит поиск по любому полю независимо от того, входит оно в состав какого-либо индекса или нет. Если поле (поля) поиска входят в какой-либо индекс, Locate автоматически использует его, что существенно увеличивает скорость поиска.
Пример для поиска по одному поисковому признаку:
If Table1.Locate(‘number’,123,[]) then s1 else s2;
Поиск ведется по полю number ищется первая запись для которой это поле равно 123, все параметры поиска отключены.
31. Методы поиска записей в наборе данных. Метод Lookup.
Поиск записи, удовлетв заданным условиям, означает переход к этой записи. Поиск по индексированным полям происходит быстрее. Кроме того ряд методов поиска может работать только с индексированными полями. Для поиска данных можно использовать методы:
FindFirst – поиск первого подходящего значения. FindLast – поиск последнего подходящего значения
FindNext – поиск следующего подходящего значения. FindPrior – поиск записи предшествующей искомой
Locate – для поиска по одному или нескольким полям. Lookup – просмотр не изменяет положение курсора, возвращает значение требуемых полей найденной записи
Поисковые признаки задаются в списке параметров методов.
Для поиска методом Lookup поля для поиска могут быть неиндексированными. Последовательный поиск можно организовать с помощью метода FindNearest. При этом поиск производится по мере ввода поискового признака. Поиск может выполняться по первичному ключу (главному индексу) или по вторичному индексу. Перед выполнением поиска должен быть задан нужный индекс.
Метод Lookup находит запись, удовлетворяющую условию поиска, но не делает ее текущей, а возвращает значения некоторых ее полей. Независимо от результата поиска записи указатель текущей записи в НД не изменяется. В отличие от метода Locate метод Lookup осуществляет поиск только на точное соответствие критерию поиска значения поля поиска записи.
function Lookup(const KeyFields: String;
const KeyValues: Variant;
const ResultFields: String): Variant;
В параметре KeyFields указывается список полей, по которым необходимо осуществить поиск (если задается поиск по нескольким полям, соседние поля в списке разделяются точкой с запятой). Параметр KeyValues определяет поисковые значения полей, список которых содержится в параметре KeyFields. В параметре Result-Fields перечисляются поля, значения которых требуется получить в случае успешного поиска. Тип результата — Variant или вариантный массив.
Если имеется несколько поисковых полей, каждому г'-му полю в списке KeyFields ставится в соответствие i-e значение в списке KeyValues. Если поиск ведется по одному полю, его поисковое значение можно указывать в качестве KeyValues непосредственно;
в случае нескольких полей их необходимо приводить к типу вариантного массива при помощи функции преобразования VarArrayOf. Как и в методе Locate, в качестве поисковых полей можно указывать поля как входящие в какой-либо индекс, так и не входящие в него. Если в результате поиска запись не найдена, метод Lookup возвращает Null, что можно проверить с помощью такого приема:
var
LookupResult: Variant;
LookupResult := Tablel.LookupC...);
if VarType(LookupResult) = varNull then ...
Если поиск оказался успешным, Lookup возвращает из найденной записи значения полей, список которых содержит ResultFields. При этом размерность результата зависит от того, сколько результирующих полей указано в ResultFields.