Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мова запитів SQL.doc
Скачиваний:
26
Добавлен:
09.11.2019
Размер:
108.54 Кб
Скачать

Компонент Tquery

Перенесемо на форму компонента TDataSoruce , TQuery, DBGrid і DBNavigator. Потім визначимо властивості за допомогою інспектора об'єктів у наступному порядку:

  1. DataSource1.DataSet=Query1(клацнути мишею по порожньому полю DataSet, буде запропонований список компонентів Query форми)

  2. DBGrid1. DataSoruce= DataSoruce1

  3. DBNavigator1. DataSoruce= DataSoruce1

  4. Query1.DataBaseName=history(вибрати зі списку алиассов)

5) Query1.SQL=SELECT * FROM HISTORY WHERE S>60 (текст запиту SQL )

  1. Query1.Active=true (вибрати зі списку)

Якщо усе зроблено вірно то на екрані будуть видно дані(поля і записи). У результаті на екрані будуть показані записи з процентним вмістом вище 60%.

Компоненти Query і Table мають багато загальних методів і властивостей.

При роботі з локальними базами вигідніше використовувати компонент Table. З його допомогою можна не тільки переглядати таблиці але і зручно(більш ефективно) модифікувати їх, видаляти і вставляти записи. Однак при роботі з мережею більш ефективним виявляється компонент Query.

Властивості компонента tQuery

Компонент TQuery, як і компонент TTable, має усі властивості компонента TDataSet.

Як і у випадку з компонентом TTable, компонент TDataSource керує взаємодією між компонентами Data Controls і компонентом TQuery. Звичайний додаток має один компонент DataSource для кожного компонента TQuery.

Найбільше часто використовуються наступні властивості компонента TQuery:

1)Active - указує, відкритий (true) чи закритий (false) даний запит

2) Eof, Bof - ці властивості приймають значення true, коли покажчик поточної запису розташований на останній чи відповідно першому рядку набору даних, що є результатом виконання запиту.

3) DatabaseName - ім'я каталогу або псевдонім (alias) БД, до якої здійснюється запит.

4) DataSource - указує джерело даних для параметризованных запитів (тобто запитів з параметрами, значення яких заздалегідь невідомо).

5) Fields - це властивість доступна тільки під час виконання (run-time only) і використовується для чи читання модифікації полів, обумовленого по порядковому номері.

6) Params - містить параметри для параметризованного запиту, як SomeNo у наступному прикладі:

Select * from Orders where CustNo=:SomeNo

Параметризированный запит містить не тільки константи, але і змінні. Механізм виконання такого запиту відрізняється від виконання звичайного, статичного запиту.

7)SQL - колекція рядків(memo), що містить текст оператора запиту SQL. Це основна властивість компонента Query. Тут записується текст запиту.

8) RequestLive - якщо true і синтаксис запиту такий, що його результат може бути модифікованно, то користувач може редагувати дані одержанні в результаті запиту зі збереженням їх у базі даних.

Якщо RequestLive має значення false, редагувати результати запиту не можна.

Найчастіше використовуються наступні методи компонента TQuery:

1)ExecSQL - виконує SQL-запит, що міститься у властивості SQL, якщо запит не повертає дані. Вживати цей метод потрібно при вставці, редагуванні або видаленні даних. При виконанні ж оператора SELECT (вибір даних) потрібно використовувати метод Open. Наступний приклад показує застосування методу ExecSQL:

Query1.Close();

Query1.SQL.Clear();

Query1.SQL.Add("Delete emp where mpno=1010");

Query1.ExecSQL();

2) Open - відкриває компонент TQuery. Він еквівалентний присвоєнню властивості Active значення true. Використовується, якщо результатом запиту є набір даних (такі запити звичайно починаються з оператора SELECT). Приклад використання методу Open:

Query1.Open();

3) Close - закриває компонент TQuery. Виклик Close еквівалентний присвоєнню властивості Active значення false. Приклад використання методу Close:

Query1.Close();

4)Prepare - забезпечує передачу серверу баз даних і синтаксичний контроль запиту, що міститься у властивості SQL, для оптимізації і компіляції. Повний запит з параметрами не передається, поки не викликані методи Open чи ExecSQL. Навіть якщо метод Prepare не викликається явно, він буде викликаний неявно, якщо використовуються методи Open чи ExecSQL.

Query1.Close();

Query1.SQL.Add("Delete emp where еmpno=:empno");

Query1.Prepare();

Компоненти TQuery мають багато методів, успадкованих від TdataSet, вони спільні з методами компоненту TTable.

Часто використовуються наступні методи:

5)First, Last, Next, Prior переміщають покажчик поточного запису на першу, останню, наступну і попередню записи відповідно.

6) MoveBy переміщає покажчик поточного запису на визначенну кількість рядків.

7) Insert, Edit, Delete, Append, Post, Cancel - дозволяють модифікувати результат запиту. Метод Insert дозволяє вносити в результат запиту зміна, як у наступному прикладі:

Query2.Insert();

Query2.Fields[0].AsInteger = 100;

Query2.Fields[1].AsString =Edit1.Text;

Query2.Post();

Метод Post записує результати операцій Insert, Update чи Delete на диск, роблячи реальну фізичну зміну в базі даних. Метод Cancel скасовує незавершені операції Insert, Delete, Edit чи Append.

Варто помітити, що маються також інстукції Insert, Edit, Delete мови SQL.

8)FreeBookmark, GetBookmark, GotoBookmark - дозволяють створювати закладки (маркіровані рядки) у запиті і потім повернутися до такого рядка пізніше.

9) GetFieldNames – повернути список полів таблиці в строкову змінну (типу TStrigngs). Наприклад, Guery1.GetFieldNames(ComboBox1.Items) завантажує в список ComboBox1 імена полів таблиці, зв'язаної з компонентом Guery1.