
- •Принципы построение бд. Понятие бд
- •Классификация бд
- •Понятие правильной базы данных
- •Этапы разработки бд
- •Этапы разработки бд. Определение типа информации, которая должна быть учтена в базе данных
- •Этапы разработки бд. Разбиение информации на объекты (сущности) и атрибуты
- •Этапы разработки бд. Отображение системы объектов (сущности) и их атрибутов на таблицы и столбцы.
- •Этапы разработки бд. Определение атрибутов, однозначно идентифицирующих каждый объект.
- •Создание и редактирование таблиц с помощью Database Desktop
- •DataBase Desktop. Описание полей. Задание индексов.
- •Использование механизма bde.
- •16. Преимущества и недостатки использования в приложениях механизма bde.
- •17. Варианты архитектуры для bde. Локальная архитектура. Архитектура «Файл-сервер».
- •1. Локальная архитектура
- •2. Архитектура «Файл-сервер».
- •18. Варианты архитектуры для bde. Архитектура «Клиент-сервер» (толстый клиент).
- •19. Варианты архитектуры для bde. Архитектура «Клиент-сервер» (тонкий клиент).
- •20. Использование компонента Ттаble. Свойства компонента Таblе.
- •21. Режимы наборов данных.
- •22. Создание таблицы утилитой Database Desktop. Создание.
- •23. Связывание таблиц Paradox (Items и Category).
- •24. Навигация по набору данных.
- •25. Поля в таблице базы данных. Объекты поля (Fields).
- •31.Способ фильтрации набора данных с использованием свойств Filter, Filtered и FilterOptions.
- •32. Поиск информации методами SetKey (или EditKey) и GotoKey.
- •34.Поиск информации методом Locate и Lookup.
- •35. Поиск информации методами FindFirst, FindPrior, FindNext и Find.
- •36. Способы сортировки.
- •37. Методы, используемые для изменения данных.
- •38. Состояние набора данных. Свойство State.
- •39. Свойства компонента tDataSource.
- •40. События DataSource.
- •41. Свойства класса tField.
- •43. Организация связи между таблица. Главная/подчиненная.
- •44. Режим кэширования изменений.
- •45. Основные сведения о языке sql.
- •46. Основные операции над таблицами в sql.
- •47. Основы синтаксиса языка sql.
- •48. Основные правила языка sql.
- •49. Оператор выбора Select.
- •50. Операции с записями в sql.
- •51. Операции с таблицами в sql.
- •52. Операции с индексами в sql.
- •53. Компонент Query. Общие сведения.
- •54. Статические и динамические запросы.
- •55. Основные свойства Query, связывание таблиц.
- •56. Основные методы компонента Query.
- •57. Формирование произвольных запросов sql.
- •58. Транзакции и проблемы многопользовательского режима работы.
- •59. Управление транзакциями, компонент Database.
- •60. Сервер InterBase. Организация данных.
- •61. Хранимые на сервере процедуры. Создание и изменение хранимых процедур.
- •62. Сервер InterBase. Виды хранимых процедур.
32. Поиск информации методами SetKey (или EditKey) и GotoKey.
Установка поиска осуществляется методом SetKey при этом поля, по которым ведётся поиск должно быть явно проиндексированым, если поиск ведётся по нескольким полям необходимо использовать составной индекс.
with Table1 do begin IndexName:='S1'; SetKey; FieldByName('magaz').AsString:=Edit1.Text; FieldByName('napit').AsString:=Edit2.Text; end;
При этом все сделанные установки поиска очищаются. Редактирование поиска осуществляется методом EditKey при этом сделанные ранее установки кода неочищаются. После сделанных установок сам поиск осуществляется либо GotoKey: Boolean;(точный поиск) либо процедурой GotoNearest (приближённый поиск)
33. Поиск информации методами FindKey и FindNearest.
Метод FindKey()
Метод FindKey() класса TTable позволяет искать запись, по одному или несколь ким ключевым полям при одном вызове функции. В качестве параметра методу Find- Key() передается массив типа array of const, содержащий критерии поиска. Если поиск прошел успешно, то метод возвращает значение True. Например, следующий оператор осуществит переход к записи в наборе данных, где первое поле в индексе имеет значение 123, а второе содержит строку Hello:
if not Table1.FindKey([123, 'Hello']) then MessageBeep(0);
Если поле не найдено, то метод FindKey() возвращает значение False и компью
тер издает звуковой сигнал.
Ближайшее соответствие
Аналогично работает метод FindNearest() или пара методов SetKey()..Goto- Nearest(), которыми можно пользоваться для поиска в таблице значения, наиболее близко соответствующего критерию поиска. Для поиска первой записи, где значение первого индексированного поля наиболее близко (больше или равно) числу 123, ис пользуйте следующий код:
Table1.FindNearest([123]);
И снова в качестве аргумента методу FindNearest() передается массив типа ar- ray of const, содержащий значения полей, по которым выполняется поиск.
Методы SetKey()..GotoNearest() можно использовать для поиска следующим образом:with Table1 do begin
SetKey;
Fields[0].AsInteger := 123;
GotoNearest;
end;
Если поиск завершится успешно и свойство KeyExclusive объекта таблицы имеет значение False, то указатель текущей записи будет установлен на первую из записей, соответствующих критерию поиска. Если свойство KeyExclusive имеет значение True, то текущей станет та запись, которая следует за последней из всех записей, соот ветствующих условию поиска.
34.Поиск информации методом Locate и Lookup.
Locate
Этот универсальный метод поиска устанавливает текущую запись как первую строку, удовлетворяющую набору критериев поиска. Используя метод Locate мы можем искать значения одного или более полей, расположенных в массиве переменных. В приведённом ниже коде, метод Locate ищет первую запись, содержащую строку "Zoom" в поле "Name". Если вызов Locate возвращает True - то запись найдена и установлена как текущая.
AdoTable1.Locate("Name","Zoom",[]);
{...или...}
var ffield, fvalue: string;
opts : TLocateOptions;
ffield := "Name";
fvalue := "zoom";
opts := [loCaseInsensitive];
if not AdoTable1.Locate(ffield, fvalue, opts) then
ShowMessage(fvalue + " not found in " + ffield);
Lookup
Метод Lookup не перемещает курсор в соответствующую строку, а только возвращает её значение. Lookup возвращает массив переменных, содержащих значения из полей, указанных в разделённом точкой с запятой списке имён, значения которых должны быть возвращены из интересующей нас строки. Если соответствующих нашему запросу строк не найдено, то Lookup вернёт пустую (Null) переменную.
Следующий пример заполняет заполняет массив переменных LookupRes
var LookupRes: Variant;
LookupRes := ADOTable1.Lookup
("Name", "Zoom", "Author; Description");
if not VarIsNull(LookupRes) then
ShowMessage(VarToStr(LookupRes[0])) //имя автора
Одно из преимуществ методов Locate и Lookup, состоит в том, что они не требуют, чтобы таблица была проиндексирована. Однако, функция Locate будет работать намного быстрее, если таблица будет проиндексирована.