
- •Принципы построение бд. Понятие бд
- •Классификация бд
- •Понятие правильной базы данных
- •Этапы разработки бд
- •Этапы разработки бд. Определение типа информации, которая должна быть учтена в базе данных
- •Этапы разработки бд. Разбиение информации на объекты (сущности) и атрибуты
- •Этапы разработки бд. Отображение системы объектов (сущности) и их атрибутов на таблицы и столбцы.
- •Этапы разработки бд. Определение атрибутов, однозначно идентифицирующих каждый объект.
- •Создание и редактирование таблиц с помощью 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. Виды хранимых процедур.
54. Статические и динамические запросы.
Обычно текст запроса определяется во время разработки приложения и вводится в свойство sql компонента TQuery при помощи простейшего специализированного редактора, который вызывается щелчком на кнопке свойства в Инспекторе объектов. Такие запросы называются статическими. Преимущество этих запросов в том, что для них можно сразу же проверить правильность синтаксиса SQL и сформировать статические поля для набора данных компонента.
Текст запроса можно определять и во время выполнения, используя для этого стандартные средства класса TStrings, так как свойство sql есть экземпляр данного класса. Запросы, текст которых задается или изменяется во время выполнения, будем называть динамическими. Их преимущество в гибкости и многоплановости — ведь один компонент TQuery, расположенный в модуле данных, может работать в нескольких формах, для этого достаточно вовремя изменить текст запроса.
Для замены всего текста можно использовать методы clear и Add, а если требуется изменить одну строку, можно воспользоваться индексом этой строки (см. выше метод FormCreate). Перед началом редактирования текста запроса необходимо отключить набор данных компонента.
Наличие в запросе параметров не означает, что запрос является динамическим, так как текст запроса не меняется. Если в старой редакции текста запроса параметры были, а в новой нет, то список параметров запроса обнуляется автоматически. Если параметры в тексте появились, то объекты параметров создаются также автоматически.
55. Основные свойства Query, связывание таблиц.
Программный доступ к полем компонента Query осуществляется с помощью свойства Fields, по индексу: Query1.Fields[1] или методом FieldByName: Query1. FieldByName(Dep) или по имени объекта поля: Query1Dep.
Для доступа к значениям полей используются те же их свойства Value, Asstring, AsInteger и т.п. Как и в табле можно осуществлять навигацию по набору данных, устанавливать фильтры, ограничивать вводимые значения полей, кэшировать изменения.
Создайте новый проект, положите на форму один набор TTable, TDataSource и TDBGrid. Привяжите его к таблице CUSTOMER. Положите на форму второй набор - TQuery, TDataSource и TDBGrid и свяжите объекты между собой. В свойстве SQL наберите текст запроса:
select * from Orders where CustNo = :CustNo
В свойстве DatabaseName для Query1 укажите DBDEMOS.
В свойстве DataSource для Query1 укажите DataSource1.
Поставьте Active = True и запустите программу.
56. Основные методы компонента Query.
К основным методам Query можно отнести методы открытия и закрытия соединения с базой данных.
Метод Close закрывает соединение с базой данных, переводя свойство Active в false. Этот метод надо выполнять перед изменением каких-то свойств, влияющих на выполнение запроса или на отображение данных. Например, при изменении параметров запроса в свойстве SQL надо сначала методом Close закрыть соединение, связанное с прежним запросом, а потом уже выполнять новый запрос.
Метод Open открывает соединение с базой данных и выполняет запрос, содержащийся в свойстве SQL. Но этот метод применим только в том случае, если запрос сводится к оператору Select. Если же запрос содержит другой оператор, например, Update или Insert, то при выполнении Open будет генерироваться исключение EDatabaseError. Для осуществления любого другого запроса, кроме Select, используется метод ExecSQL. Он подготавливает выполнение данного запроса, если подготовка не осуществлена заранее, и затем выполняет его. Подготовка выполнения требует определенных затрат времени. Поэтому для ускорения взаимодействия с базой данных полезно перед первым выполнением запроса выполнить метод Prepare.
При изменении текста в свойстве SQL методы Close и Prepare вызываются автоматически.