
- •29. Типи даних мови sql
- •30. Прості вибірки даних. Основні sql-вирази для вибірки даних.
- •Обчислення в sql.
- •Использование итоговых функций
- •Складні запити. Теоретико-множинні операції: декартовий добток, обєднання наборів записів, перелік, віднімання наборів запитів.
- •Операції об’єднання.
- •Рекурсивні запити.
- •Добавлення, видалення та зміна даних в таблицях.
- •Створення та модифікація таблиць. Створення і модифікація таблиць у режимі Конструктор.
- •Создание таблиц в бд MySql
- •Управління правами доступу. Операторы управления правами доступа.
- •Изменение прав доступа к объектам базы данных
- •Компонент tDataSource
- •Компонент tTable
- •Компонент tField
- •Компонент tdbGrid
- •Компонент Query: загальні відомості, динамічні запити і параметри Query.
- •Параметры Query.
- •Основные свойства Query.
- •Основные методы компонента Query.
- •Основні властивості Query, зв’язування таблиць.
- •Кешування змін, сумісне застосування Query і UpdateSql.
- •Робота з бд в мережі.
- •Режимы работы с базой данных в сети
Основные методы компонента Query.
Close |
Закрывает соединение с базой данных, переводя свойство Active в False. При изменении запроса в свойстве SQL сначала надо закрыть соединение. |
GetFieldNames |
Список имен полей таблицы, связанной с Query, который загружается в переменную типа TStrinds. Например: Query1.GetFieldNames(Combobox1) |
Open |
открывает соединение с базой данных и выполняет запрос SQL, если этот запрос содержит оператор Select |
Для осуществления любого другого запроса, кроме Select используется метод ExecSQL. Неизвестный запрос, сформированный в переменной ssql типа строка, можно выполнить с помощью следующих операторов: try Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(ssql); Query.Open; … except on EDataBaseError do Query1.ExecSQL; end;
Основні властивості Query, зв’язування таблиць.
Питання 39
Кешування змін, сумісне застосування Query і UpdateSql.
Метод ExecSQL осуществляет немедленную модификацию таблицы. Однако нередко удобнее было бы кэшировать изменения (хранить их временно в памяти), а после того, как все изменения и проверки сделаны, переслать их в базу данных или, по решению пользователя, отменить все сделанные исправления. Это делается так же, каки для компонента ТаЫе (см. разд. 9.11.3, гл. 9): устанавливается в true свойство CachedUpdateacoMnoHeHTa Query и применяются методы ApplyUpdates для записи изменений в базу данных, метод CancelUpdates для отмены изменений и метод CommitUpdates для очистки буфера кэша. Но режим кэширования позволяет сделать большее — он позволяет подключить в приложение компонент UpdateSQL. Этот компонент, расположенный на странице библиотеки Data Access, позволяет модифицировать наборы данных, открытые в режиме только для чтения. Это особенно важно для наборов данных, открываемых Query c запросом Select, поскольку Select создает таблицу только для чтения.
Давайте построим приложение, демонстрирующее режим кэширования и тождественное тому, которое рассматривалось в разд. 9.11.3, гл. 9. Возьмите то же самое приложение (рис. 9.45), только замените в нем компонент Tablel на компонент Queryl и везде в тексте тоже проведите соответствующую замену Tablel на Queryl. В свойстве SQL компонента Queryl запишите «Select * from Pers» и установите свойство CachedUpdates в true. Запустите свое приложение, и вы увидите, что оно, увы, не работает. Отредактировать запись или вставить новую запись невозможно. А из кнопок навигатора доступны только кнопки навигации. Причина всего этого была указана ранее — Query c запросом Select создает таблицу только для чтения. Давайте исправим ваше приложение. Поместите на него компонент UpdateSQL со страницы библиотеки Data Access. Чтобы связать его с приложением, установите в компоненте Queryl свойство UpdateObject равным имени введенного компонента UpdateSQLl. Это имя вы можете выбрать из выпадающего списка в свойстве UpdateObject. Теперь можно задавать свойства компонента UpdateSQLl. Этих свойств, кроме Name и Tag, всего 3: DeleteSQL, InsertSQL и ModifySQL. Они содержат соответственно запросы, которые должны выполняться при удалении, вставке или модификации записи. Эти запросы можно записать обычным образом, вручную. А можно воспользоваться редактором UpdateSQL, который вызывается двойным щелчком на UpdateSQL или при выделенном UpdateSQL вызывается из всплывающего меню. Окно этого редактора имеет вид, представленный на рис. 10.2. Первая страница Options Редактора UpdateSQL, представленная на рисунке, содержит два окна: Key Fields и Update Fields.