Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_po_BD_29-42.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
510.54 Кб
Скачать

Основные методы компонента 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;

  1. Основні властивості Query, зв’язування таблиць.

Питання 39

  1. Кешування змін, сумісне застосування 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]